Сетка как договоренности в UIScrollView (PhotoScroller) - PullRequest
0 голосов
/ 02 марта 2012

Я использовал образец кода Apple Scrollview PhotoScroller для своего приложения с использованием множества изображений (и с помощью логики переработки) в UIScrollView. Я реализовал это в моем приложении, и оно отлично работает.

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

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

CGRect visibleBounds = _scrollView.bounds; // CGRect gridElementvisibleBounds = CGRectMake (0, 0, 212, 200); int firstNeededPageIndex = floorf (CGRectGetMinX (visibleBounds) - CGRectGetWidth (visibleBounds)); int lastNeededPageIndex = floorf ((CGRectGetMaxX (visibleBounds) -1) - CGRectGetWidth (visibleBounds)); firstNeededPageIndex = MAX (firstNeededPageIndex, 0); lastNeededPageIndex = MIN (lastNeededPageIndex, [self imageCount] - 1);

где _scrollView - это экземпляр UIScrollView, который я использую, и gridElement, который я использую, имеет размер кадра (0, 0, 212, 200). Число элементов сетки, которые занимают границы scrollView 3 х 3 (9).

Я не хочу использовать grid, как tableViews (AQGridView и т. Д.), Так как я собираюсь загрузить более 500 изображений. Пожалуйста, кто-нибудь, помогите мне выяснить, что я должен исправить в приведенный выше код.

1 Ответ

0 голосов
/ 05 марта 2012

Я почти исправил проблему, используя contentOffset, чтобы получить видимую область. Вот фрагмент кода, иллюстрирующий, что я сделал, чтобы он заработал.

int firstNeededPageIndex = ((int)_scrollView.contentOffset.y / 960) * 9;
int lastNeededPageIndex = ((int)_scrollView.contentOffset.y / 960) * 9 + 17;

где я нашел видимую область, получив contentOffset.y / 960, и получил firstNeededPageIndex, как указано выше. Когда прокрутка прокрутки прокручивается, компоненты скрываемой страницы содержат 9 элементов, а последующая страница (полученная lastNeededPageIndex), которая становится видимой, не содержит компонентов. Поэтому я сделал это видимым, сделав 18 объектов в видимой области при прокрутке. Следовательно, объекты, которые будут видны при прокрутке, стали 0-м объектом к 17-му объекту.

И в результате при прокрутке прокрутки 18 компонентов (от 0 до 17) в видимой области (получаемых с помощью contentOffSet) перерабатываются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...