Предпосылки - Окружающая среда: IOS 9.0 или выше - с помощью Swift 3.0.1Загрузка и отображение случайных клеток в UICollectionView
Спасибо за ваши ответы. Я обновляю вопрос и пытаюсь лучше понять проблему.
Проводка может помочь, но я не могу опубликовать код, поскольку у меня нет IP-адреса.
Но я пытаюсь создать что-то вроде руководства по календарю/программе, где у вас есть события для каждой категории в течение нескольких дней.
Представьте себе, что категории слева от вас находятся в столбце, и они могут быть секциями коллекции, и каждая категория имеет события в течение нескольких дней, что является рядом.
CAT 1: Событие 1, Событие 2 ... Событие п CAT 2: Событие 1, Событие 2 ... Событие п CAT 3: Событие 1, Событие 2 ... Событие п . . . CAT m: Событие 1, Событие 2 ... Событие n
Проблема: все данные довольно динамичны и очень обширны. Я не могу предварительно отбирать все записи, их около 80-100K. Загрузка всех данных и отображение их в сетке занимает несколько минут.
Пользователь может выбрать любой день и в любое время, и мне нужно прокрутить представление коллекции до этого дня и времени и отобразить эти события для категорий. Кроме того, пользователь может, очевидно, прокручивать в обоих направлениях и просматривать события, в этом случае события загружаются как бесконечный способ прокрутки.
В первом варианте, когда пользователь перескакивает на определенный день и время на всей временной шкале, и мне нужно пропустить загрузку других предыдущих событий (поскольку у меня их еще нет - неизвестно) и отображать события относящихся к выбранным пользователем дням и времени.
У меня нет всех IndexPaths заранее, чтобы отображать на экране, как я могу пропускать события и динамически обновлять представление коллекции в таких частях, как динамически загружать изображения и те, которые сначала загружаются и отображаются раньше других ,
Я использую startDate событий для вычисления xPosition, категории не меняются часто после их загрузки, поэтому мы могли бы как-то избежать перезагрузки разделов, но элементы в этих разделах меняются все время, и они появляются случайным образом ,
Когда контроллер загружает первый набор событий, которые извлекаются с сервера и отображаются, теперь, если пользователь решил перейти к некоторому D-Day и T-Time, который может быть где угодно на всей временной шкале, я должен получить события для этих дат и заполнять элементы для соответствующих разделов (видимые на экране) и обновлять интерфейс. Здесь у меня проблемы, когда у меня нет подходящего подхода.
Надеюсь, что это яснее. I have "tried" to mock this up
Будет проще, если вы покажете коды, используемые в настоящее время, для расчета вашего xPosition и использования вами для заполнения коллекции. Насколько я пытался, с данными, используемыми для заполнения представления коллекции, всегда можно рассчитать indexPath определенного элемента, который вы ищете. –
Или в вашей текущей ситуации вы можете вместо этого попытаться разделить просмотр коллекции на разделы по дням или месяцам в зависимости от того, что более важно, и что может облегчить расчет позиции вашей нужной ячейки. –
Если вы реализуете надежную ** ленивую загрузку ** основанный на пути индекса, вы можете просто использовать 'scrollToItem (at: at: анимированные:)' ([ссылка] (https://developer.apple.com/reference/uikit/uicollectionview/1618046-scrolltoitem)) для прокрутки коллекции просмотреть соответствующий путь индекса. – lukya