Разбиение на страницы UIScrollView с бесконечным циклом из трех представлений - PullRequest
2 голосов
/ 22 июля 2011

Я хочу создать UIScrollView с тремя постоянными представлениями.Средний вид всегда должен отображаться изначально.Когда пользователь прокручивает вправо, то представление 1 будет активным представлением, а два других представления будут перемещаться так, как если бы был цикл: представление 3 теперь будет слева, а представление 2 справа.Прикрепленный рисунок объясняет, что я хочу:

Возможно ли это?

Ответы [ 4 ]

4 голосов
/ 22 июля 2011

3 страницы только

Могут быть случаи, когда вы хотите бесконечный цикл страницы, но не хотите загрузить много контента. Например, у вас может быть много содержимое для отображения внутри UIScrollView. Загрузка большого количества Данные не будут идеальным подходом к ситуации.

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

... взято из http://iosdevelopertips.com/user-interface/creating-circular-and-infinite-uiscrollviews.html

0 голосов
/ 08 января 2014

scroll3.contentOffset = CGPointMake (scroll3.frame.size.width * 2, 0);

0 голосов
/ 22 июля 2011

Сделайте ваш просмотр прокрутки 5 просмотров подряд. сделайте первый просмотр вида 3 следующим 1, 2, 3, 1. Запустите Scrollview, где вы хотите.

0 голосов
/ 22 июля 2011

Очень возможно.Вы можете создать подкласс UIScrollView и добавить что-то подобное в его метод - (id)init.

int numberOfPages = 3;

// For ease in referencing sizes
CGFloat portalHeight = self.frame.size.height;
CGFloat portalWidth = self.frame.size.width;

self.contentSize = CGSizeMake(self.frame.size.width * numberOf Pages, self.frame.size.height);

self.contentOffset = CGPointZero;

// Needed to lock scrolling to pages
self.pagingEnabled = YES;

// Setup pages
for (NSUInteger i = 0; i < numberOfPages; i++) {
    // Add subviews here
}

РЕДАКТИРОВАТЬ: Возможно, я не совсем понимаю ваш вопрос.Должны ли они быть «каруселью» представлений, которые могут постоянно вращаться?

...