Ответ 1
Да, вы должны каждый раз восстанавливать каждый контент subview, точно так же, как в представлении таблицы. Преимущество переобучения в области просмотра - это сохранение памяти для хранения в виде хранилища и экономия времени для размещения в представлении, но, конечно же, управление данными контента зависит от вас.
Таким образом, для стандартного подхода к переработке требуется использовать несколько ячеек, равное количеству просмотров, видимых одновременно на экране + количество дополнительных ячеек, которые вы можете получить при запуске прокрутки. Скажем, например, вы показываете по 5 полных просмотров за раз (прокрутка выглядит стабильной), а затем при прокрутке вам потребуется один дополнительный вид, который частично отображается, поэтому в конце вам нужно 5 + 1 = 6 просмотров. Это теоретически, рекомендуется использовать еще 2 вида. Таким образом, вам нужно написать два пула: один из них называется "visibleViews", который сделан из всех представлений, добавленных как subviews в scrollview, а другой - "AvailableViews", который сделан из всех представлений, доступных для повторного использования. Затем вы создаете все эти виды и добавляете их в вид прокрутки (да: вам нужно настроить их кадр в соответствии с их положением в scrollview, и да, вам нужно снова настроить контент). Наконец, вам нужно отследить движение прокрутки, установив делегат. Цель этого отслеживания - рассчитать, какое из видимых видов больше не видно, затем удалить его из видимого пула и перейти в полезный пул. Кроме того, делегат должен понять, когда появится новая ячейка, но она все еще не видна, а затем получает ее из доступного пула (или выделяет/инициализирует ее, если пул пуст) и добавляет как видимый пул, так и подзаголовок scrollview. Конечно, если вы хотите повысить производительность, вы можете разместить больше подвид в представлении прокрутки, чтобы избежать перемещения ячеек точно, когда они начинают появляться на экране, поэтому я рекомендовал использовать несколько дополнительных представлений по сторонам прокрутки.
Есть отличное видео с WWDC 2010 (вы можете получить к нему доступ, если вы являетесь зарегистрированным разработчиком) об использовании прокрутки в iOS: он объясняет эту технику.
Пример кода Apple PhotoScroller в документации XCode существенно отличается от того, что указано в видео WWDC и объясняет эту технику.