Visualização horizontal da coleção
-
21-12-2019 - |
Pergunta
eu tenho uma visualização de coleção.Preciso chamar o serviço da web sempre que o usuário deslizar a visualização da coleção e recarregar toda a tabela de coleção a partir da resposta do serviço da web.Isso é possível e uma boa abordagem.e se sim, você pode me dizer como implementar isso.
Solução
Isso é possível
Sim, é definitivamente possível.
uma boa abordagem
Provavelmente não.As solicitações de rede podem ter alta latência, o que significa que você pode acabar com um atraso entre o deslizamento e o momento em que o usuário vê os novos dados.Você provavelmente teria uma experiência de usuário melhor se carregasse os novos dados antes que o usuário passasse o dedo, para que você os tenha pronto para uso sem demora.
como implementar isso
Comece lendo em visualizações de coleção.Não é viável explicar tudo o que você precisa saber aqui em uma pequena resposta, e a Apple já escreveu um guia completo sobre isso.
Não está claro na sua pergunta se você deseja que o deslizamento seja na mesma direção em que a visualização da coleção rola.Consideremos então os dois casos:
Deslize na mesma direção da rolagem: Você não precisa fazer nenhum trabalho aqui para fazer a coleção rolar - coleções são visualizações de rolagem.Você deve fazer com que a fonte de dados da sua visualização de coleção carregue tantos dados quanto for razoável.Quando a coleção solicita células para as quais os dados não estão disponíveis (ou quando a visualização da coleção é apenas fechar à necessidade de células para as quais os dados não estão disponíveis), a fonte de dados deverá solicitar mais dados do serviço web.
Deslize no ângulo reto na direção de rolagem: Por exemplo.a visualização da coleção rola horizontalmente e o deslizamento é vertical.Você usaria uma configuração como essa quando quiser que o usuário possa deslizar entre diferentes conjuntos de dados com um gesto.Use um reconhecedor de gestos para detectar o deslizar e use a ação do gesto para instruir a fonte de dados a alternar os conjuntos de dados.Em seguida, diga à coleção para recarregar suas células.Você pode usar -[UICollectionView reloadData]
método aqui, mas você também pode querer alterar a posição de rolagem com -[UICollectionView scrollToItemAtIndexPath:atScrollPosition:animated:]
.