UIScrollview setContentOffset с нелинейной анимацией?

Я пытаюсь воспроизвести плавную анимацию прокрутки с включенным пейджингом, когда вы на самом деле прокручиваете следующую страницу. Кажется, UIViewAnimationCurveEaseInOut, но мне нужно иметь кнопку «следующая страница» и запускать прокрутку программно

Вот мой код:

-(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)];
}

Мне не удается воспроизвести гладкость UIViewAnimationCurveEaseInOut, либо с setContentOffset, либо с scrollRectToVisible... он переходит на следующую страницу с уродливой линейной анимацией

Я даже пытался анимировать ее вручную:

[UIView animateWithDuration:.5 delay:0 options:UIViewAnimationCurveEaseInOut animations:^{
    scrollView.contentOffset = offset;
} completion:^(BOOL finished) {    } ];

где я ошибаюсь?

27
задан halfer 23 August 2017 в 16:44
поделиться