Как я могу реализовать перелистывание фотографий как приложение iOS Photos, используя UIPageViewController? - PullRequest
0 голосов
/ 21 января 2019

Предположим, у меня есть большой массив фотоидентификаторов, которые я могу использовать в API приложения APP requestPhoto для получения фотографии. Как я могу реализовать UIPageViewController для размещения большого массива как такового. Не создаст ли контроллер представления для каждой из этих фотографий при пролистывании влево / вправо, что приведет к снижению производительности приложения. Может ли кто-нибудь предложить лучший подход к этому? Я искал везде, но не мог ничего найти. Я полагаю, что другой способ сформулировать этот вопрос - «Как я могу реализовать UIPageViewController с динамическим набором данных вместо статического числа?

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Для всех, кто борется с той же проблемой. Я нашел это видео очень полезным. https://www.youtube.com/watch?v=ItdPXinQOp8?

В соответствии с этим я создал массив с lazy var, который выдвигает все контроллеры представления в массиве. Контроллер представления загружается только тогда, когда это необходимо, что предотвращает снижение производительности. Так что не имеет значения, если у вас есть n контроллеров представления.

Таким образом, в основном подход будет:

  1. Иметь массив со всеми идентификаторами изображений, которые вы хотите пролистать
  2. Создайте ленивый var newArray, который будет перебирать imageID (Array) и извлекать изображения с помощью вызова API. Не волнуйтесь, он будет вызывать API только при необходимости. Инициализируйте контроллер детального просмотра с полученным изображением и нажмите viewcontroller в newArray.
  3. Настройте делегаты UIPagecontroller как обычно, используя вновь сформированный массив всех viewcontroller.
0 голосов
/ 21 января 2019

Я предлагаю следующий подход

  1. Используйте UICollectionView для интерфейса ваших фотографий.
  2. Выберите горизонтальную прокрутку для просмотра коллекции, чтобы пользователи могли проводить пальцем влево и вправо.
  3. Массив источника данных может содержать источники ваших фотографий, что позволяет вашему просмотрщику фотографий быть динамичным.Просто обновите массив и вызовите reloadData () в представлении коллекции, чтобы обновить пользовательский интерфейс.Вы можете отслеживать элемент, который пользователь просматривал в последний раз, и прокручивать его до обновления, если вы не хотите, чтобы пользователь знал об обновлении.

  4. Collectionview автоматически обрабатывает память для вас, поэтому вам не нужно об этом беспокоиться.

...