Я создаю ImageViewer, похожий на приложение «Фотографии». У меня есть PagingScrollView, который является представлением контроллера представления (созданного в loadView). Страницы представляют собой UIScrollViews с подпредставлениями UIImageView. Все работает, черт возьми, до тех пор, пока я не попробую «пропустить» (установить смещение содержимого) индекс, отличный от первого. Если я пропущу, чтобы сказать изображение «i», изображение отображается правильно, но если пользователь выполняет один жест касания, contentOffset сбрасывается обратно, чтобы отобразить изображение «0». Ошибка не возникает с другими жестами, такими как перетаскивание, и не возникает при прикосновении, если вы сначала выполняете другой жест, например перетаскивание.
Это мой loadView для ImageViewerController
- (void)loadView
{
//Make the outer spaging scroll view
CGRect pagingScrollViewFrame = [self frameForPagingScrollView];
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:pagingScrollViewFrame];
scrollView.pagingEnabled = YES;
scrollView.backgroundColor = [UIColor blackColor];
scrollView.showsVerticalScrollIndicator = NO;
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.contentSize = [self contentSizeForPagingScrollView];
scrollView.delegate = self;
self.view = scrollView;
}
Вот как я пытаюсь установить смещение содержимого
#define myView (UIScrollView *)self.view
[myView setContentOffset:[self contentOffsetForIndex:index]];
[..]
- (CGPoint)contentOffsetForIndex:(NSUInteger)index
{
return CGPointMake((index * (self.view.frame.size.width)), 0);
}