Estoy creando un ImageViewer similar a la aplicación Photos. Tengo un PagingScrollView que es la vista de un controlador de vista (creado en loadView). Las páginas son UIScrollViews con subvistas UIImageView. Todo funciona Hunky Dory hasta que intento 'saltar' (establecer el offset de contenido) a un índice además del primero. Si omito para decir, imagen 'i', la imagen se muestra correctamente, pero si el usuario realiza un solo gesto de toque, el contentOffset se restablece automáticamente para mostrar la imagen '0'. El error no ocurre con otros gestos, como arrastrar, y no ocurre con el tacto si haces otro gesto, como arrastrar primero.UIScrollView establece programáticamente problema contentOffset
Ésta es mi loadView del 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;
}
Ésta es la forma en que estoy tratando de establecer el contenido compensado
#define myView (UIScrollView *)self.view
[myView setContentOffset:[self contentOffsetForIndex:index]];
[..]
- (CGPoint)contentOffsetForIndex:(NSUInteger)index
{
return CGPointMake((index * (self.view.frame.size.width)), 0);
}
¿Quizás publique los reconocedores de gestos? Todo aquí me parece bien. ¿El tap invocar el contentOffset-change de algún tipo? – Jensen2k
No agrego ningún reconocedor de gestos propio. El toque está siendo capturado por la vista de desplazamiento de paginación y reinicia su contentOffset para mostrar la página 0. Mientras lo hago, recibo el mensaje delegado scrollViewDidScroll – Mike
Tengo el mismo problema, en iOS 6. Para iOS 5 funciona bien. También este error desaparecerá una vez que desactive pagingEnabled o si deshabilito la animación de desplazamiento. ¿Alguien sabe una mejor manera de arreglar esto? – AmineG