Позвольте мне описать ситуацию, которую я пытаюсь сделать:
У меня есть список предметов. Когда я иду в ItemDetailView, который является UITableView. Я хочу сделать пейджинг здесь следующим образом: Когда я прокручиваю вниз из табличного представления, я хочу отобразить следующий элемент. Как в Good Reader:
Примеры подкачки http://img245.yfrog.com/img245/2073/pricethat.jpg
В настоящее время я пробую 2 подхода, но оба они на самом деле не работают для меня.
1-й: я предоставляю свой UITableView поверх моего вида прокрутки, и у меня есть хорошая анимация, и она работает вполне нормально, за исключением того, что иногда UITableView будет получать событие вместо моего вида прокрутки. И поскольку UITableView уже является UITableView, такой подход кажется не очень хорошей идеей. Вот некоторый код:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// a page is the width of the scroll view
scrollView.pagingEnabled = YES;
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width, scrollView.frame.size.height * kNumberOfPages);
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.showsVerticalScrollIndicator = YES;
scrollView.scrollsToTop = NO;
scrollView.delegate = self;
[self loadScrollViewWithPage:0];
}
- (void)loadScrollViewWithPage:(int)page {
if (page < 0) return;
if (page >= kNumberOfPages) return;
[self.currentViewController.view removeFromSuperview];
self.currentViewController = [[[MyNewTableView alloc]initWithPageNumber:page] autorelease];
if (nil == currentViewController.view.superview) {
CGRect frame = scrollView.frame;
[scrollView addSubview:currentViewController.view];
}
}
- (void)scrollViewDidScroll:(UIScrollView *)sender {
if (pageControlUsed) {
return;
}
CGFloat pageHeight = scrollView.frame.size.height;
int page = floor((scrollView.contentOffset.y - pageHeight / 2) / pageHeight) + 1;
[self loadScrollViewWithPage:page];
}
- (IBAction)changePage:(id)sender {
int page = pageControl.currentPage;
[self loadScrollViewWithPage:page];
// update the scroll view to the appropriate page
CGRect frame = scrollView.frame;
[scrollView scrollRectToVisible:frame animated:YES];
pageControlUsed = YES;
}
Мой второй подход: использование pop и push-навигации navigationController для выталкивания текущего ItemDetail и добавления нового поверх него. Но этот подход не даст мне приятной анимации прокрутки вниз, как при первом подходе.
Итак, ответ на вопрос, как я могу это сделать при любом подходе, будет оценен