2010-11-04 68 views
4

有沒有辦法改變滾動UIScrollView時scrollRectToVisible動畫的速度有多快?有沒有辦法改變scrollRectToVisible的速度?

+1

可能重複[的UIScrollView scrollRectToVisible在自定義的速度(http://stackoverflow.com/questions/1558262/uiscrollview-scrollrecttovisible-at-custom-speed) – Sebastian 2015-01-27 22:08:44

回答

6

不,沒有公共方法。持續時間固定爲0.3秒。

一個私人的,未公開的API改變時間:

@interface UIScrollView(UIScrollViewInternal) 
-(void)_setContentOffsetAnimationDuration:(NSTimeInterval)duration; 
@end 

,但因爲所有的未公開的API,使用這將導致從AppStore的拒絕。

+0

其實,我打算分發特設可能,不成問題。我在哪裏可以找到這個方法定義?謝謝! – Moshe 2010-11-04 21:24:13

+0

@Moshe:必須手動聲明。您可以將上面的類別包含到使用它的文件中。 – kennytm 2010-11-04 21:26:21

+0

其實我只是把它叫做'[scrollView _setContentOffsetAnimationDuration:8.0]'而且它工作正常。請注意,如果您使用NSTimer,像我一樣,動畫持續時間必須大於定時器的時間間隔,否則它會變得非常活躍。 – Moshe 2010-11-04 21:30:35

13

只需將動畫參數設置爲NO,然後使用UIView的動畫類方法執行自己的動畫即可。

[UIView animateWithDuration:1.0f delay:0.0f options:UIViewAnimationOptionCurveEaseOut animations:^{ 
    [scrollView scrollRectToVisible:viewFrame animated:NO]; 
} completion:nil]; 
+3

但是,這並不會調用-scrollViewDidScroll:委託方法。 – iamjustaprogrammer 2014-03-05 00:21:18

+0

是的,但這不是問題作者的要求。 – Camsoft 2016-05-12 14:18:47

相關問題