我試圖在您實際滾動到下一頁時重新啓用分頁的scrollview的平滑動畫。它似乎是UIViewAnimationCurveEaseInOut
,但我需要有一個「下一頁」按鈕並以編程方式觸發滾動。UIScrollview setContentOffset與非線性動畫?
這裏是我的代碼:
-(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) { } ];
我在哪裏錯了?
我發現這個:http://developer.apple.com/library/ios/#DOCUMENTATION/WindowsViews/Conceptual/UIScrollView_pg/ScrollingViewContent/ScrollingViewContent.html確認我看到:'setContentOffset:animated:方法滾動內容到指定的內容偏移量。如果動畫參數爲YES,則滾動將以恆定速率從當前位置移動到指定位置。# – Diwann
arg。沒有人可以有任何線索? – Diwann
那麼,如果'UIViewAnimationCurveEaseInOut'不起作用,它可能是一個不同的動畫曲線。這是非常有可能蘋果使用這個動畫的自定義曲線。使用'CAPropertyAnimation',你可以用'CAMediaTimingFunction'的形式定義你自己的自定義曲線。這可能是值得玩弄不同的控制點。 –