Вопрос

у меня есть представление Коллекции.Мне нужно вызывать веб-службу, когда пользователь просматривает представление коллекции, и перезагружать всю таблицу коллекции из ответа веб-службы.Возможно ли это и хороший ли подход?и если да, то можете ли вы сказать мне, как это реализовать?

Это было полезно?

Решение

Возможно ли это

Да, это определенно возможно.

хороший подход

Скорее всего, нет.Сетевые запросы могут иметь высокую задержку, что означает, что в конечном итоге может возникнуть задержка между пролистыванием страницы и моментом, когда пользователь увидит новые данные.Вероятно, у вас был бы лучший пользовательский опыт, если бы вы загрузили новые данные до того, как пользователь проведет пальцем по экрану, чтобы они были готовы к отправке без задержек.

как это реализовать

Начните с прочтения просмотры коллекции.Невозможно объяснить все, что вам нужно знать здесь, в одном небольшом ответе, и Apple уже написала целое руководство по этому поводу.

Из вашего вопроса неясно, имеете ли вы в виду, что свайп должен быть в том же направлении, в котором прокручивается вид коллекции.Тогда давайте рассмотрим эти два случая:

Проведите пальцем в том же направлении, что и при прокрутке: Вам не нужно выполнять здесь какую-либо работу, чтобы прокрутить коллекцию - collections являются прокручивать виды.Вы должны сделать так, чтобы источник данных вашего представления коллекции загружал столько данных, сколько это разумно.Когда коллекция запрашивает ячейки, для которых данные недоступны (или когда представление коллекции просто Закрыть для нуждающихся ячеек, для которых данные недоступны), источник данных должен запросить дополнительные данные у веб-службы.

Проведите пальцем под прямым углом к направлению прокрутки: Например.просмотр коллекции прокручивается по горизонтали, а свайп - по вертикали.Вы бы использовали подобную настройку, когда хотите, чтобы пользователь мог жестом переключаться между различными наборами данных.Используйте распознаватель жестов, чтобы обнаружить свайп, и используйте действие жеста, чтобы сообщить источнику данных о необходимости переключения наборов данных.Затем прикажите коллекции перезагрузить свои ячейки.Вы можете использовать -[UICollectionView reloadData] метод здесь, но вы также можете захотеть изменить положение прокрутки с помощью -[UICollectionView scrollToItemAtIndexPath:atScrollPosition:animated:].

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top