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.

Foi útil?

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:].

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top