Estoy tratando de reproducir la animación suave de una vista de desplazamiento con la paginación habilitada cuando se desplaza a la página siguiente. Parece ser UIViewAnimationCurveEaseInOut
, pero necesito tener un botón de "página siguiente" y trigonar el desplazamiento programáticamente.UIScrollview setContentOffset con animación no lineal?
Aquí está mi código:
-(void) scrollToPage:(int)page
{
UIScrollView *scrollView = contentView;
CGPoint offset = CGPointMake(scrollView.bounds.size.width * page, scrollView.contentOffset.y);
[scrollView setContentOffset:offset animated: YES];
[self pageControlUpdate];
}
-(void) scrollToNextPage
{
[self scrollToPage:(pageControl.currentPage + 1)];
}
puedo o no reproducir la suavidad de UIViewAnimationCurveEaseInOut
, ya sea con setContentOffset
, o con scrollRectToVisible
... que pasa a la página siguiente con una animación lineal fea
incluso he intentado animar manualmente:
[UIView animateWithDuration:.5 delay:0 options:UIViewAnimationCurveEaseInOut animations:^{
scrollView.contentOffset = offset;
} completion:^(BOOL finished) { } ];
¿dónde estoy equivocado?
encontré esto: http://developer.apple.com/library/ios/#DOCUMENTATION/WindowsViews/Conceptual/UIScrollView_pg/ScrollingViewContent/ScrollingViewContent.html que confirman lo que vi: 'La setContentOffset: animada: rollos método de las contenido al desplazamiento de contenido especificado. Si el parámetro animado es SÍ, el desplazamiento se animará desde la posición actual a la posición especificada a una velocidad constante. – Diwann
arg. Nadie podría tener alguna pista? – Diwann
Bueno, si 'UIViewAnimationCurveEaseInOut' no funciona, probablemente sea una curva de animación diferente. Es muy posible que Apple use una curva personalizada para esta animación. Usando 'CAPropertyAnimation', puede definir su propia curva personalizada en forma de' CAMediaTimingFunction'. Puede valer la pena jugar con diferentes puntos de control. –