Используйте этот удобный класс с именем PagedView , который управляет просмотром прокрутки страниц, а также загрузкой / выгрузкой и повторным использованием представления.
Вы должны реализовать два метода делегата, чтобы заставить его работать:
- (NSUInteger)numberOfPagesInPagedView:(PagedView *)view;
- (UIView *)pagedView:(PagedView *)view viewForPageAtIndex:(NSUInteger)page;
Они будут выглядеть знакомо, если вы когда-либо использовали UITableView
. В numberOfPagesInPagedView:
вам просто нужно вернуть количество страниц, которые вы хотите отобразить.
- (NSUInteger)numberOfPagesInPagedView:(PagedView *)view
{
// return the number of pages in the paging view
return 10;
}
В pagedView:viewForPageAtIndex:
вы должны вернуть представление для определенного индекса страницы. Вы можете повторно использовать представления, отправив сообщение dequeueReusableViewWithIdentifier:
в постраничное представление.
- (UIView *)pagedView:(PagedView *)pagedView viewForPageAtIndex:(NSUInteger)page
{
static NSString *reuseIdentifier = @"PageIdentifier";
UIView *view = [pagedView dequeueReusableViewWithIdentifier:reuseIdentifier];
if(view == nil) {
view = [[[MyPageView alloc] initWithFrame:view.bounds] autorelease];
}
// add contents specific to this page index to the view
return view;
}
Для обеспечения повторного использования представления ваш подкласс UIView
(MyPageView
) должен соответствовать протоколу ReusableObject
и реализовывать reuseIdentifier
(в этом случае вы должны вернуть @"PageIdentifier"
).
Я использовал этот класс в ряде проектов, и он работает довольно хорошо.