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