Реализация Pinterest Gridview на iOS - PullRequest
       24

Реализация Pinterest Gridview на iOS

4 голосов
/ 13 февраля 2012

Я хочу реализовать вид сетки, как в Pinterest

Я думал о реализации в виде трех табличных представлений. Но я не смог хорошо прокрутить их вместе. Когда я реализовал scrollViewDidScroll и установил contentOffset для табличных представлений, отличных от scrollView, прокрутка стала медленной и непригодной для использования.

Другая реализация, которую я сделал, имела набор изображений для загрузки и вызов функции viewDraw в scrollViewDidScroll. Функция ViewDraw просто рисует необходимые изображения и удаляет остальные изображения из памяти, которые уже были нарисованы, но не будут видны. это также замедляет прокрутку ScrollView. И еще одна проблема, связанная с этим, заключается в том, что перед рисованием изображений появляются белые (цвет фона) пятна.

Каким должен быть лучший способ реализации этого вида сетки?

1 Ответ

3 голосов
/ 26 февраля 2012

Решение 1 (я не знаю, работает ли это, и мне это не очень нравится)

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

Решение 2

Используйте UIScrollView (для целей прокрутки, конечно).Из соображений производительности и памяти также необходимо реализовать механизм загрузки по требованию, чтобы не загружать все изображения одновременно.

Для этого я бы создал класс CustomImageStrip, который обрабатывает вертикальный список изображений.Этот класс работает вместе с scrollview и использует contentOffset, чтобы определить, когда пора загружать / выгружать изображение с полосы.

Имея 3 независимых класса полосы изображения, изображения могут быть любого размера ине нужно выравниватьНо, поскольку все они принадлежат одному и тому же UIScrollView, прокрутка будет выполняться одновременно.

...