UIScrollView программно устанавливает проблему contentOffset

Я создаю 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);
}
7
задан Deepak Danduprolu 14 June 2011 в 02:33
поделиться