我試圖下面的委託方法中修改我的滾動的contentOffset到setContentOffset:無法在scrollViewDidEndDragging
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
我曾嘗試以下兩種:
[UIView animateWithDuration:.2 animations:^ {
[scrollView setContentOffset:CGPointZero animated:NO];
}];
和
[UIView animateWithDuration:.2 animations:^ {
CGRect svBounds = self.bounds;
svBounds.origin.y = 0;
self.bounds = svBounds;
}];
問題是,儘管這會立即改變偏移量(通過日誌t他動畫完成),它不會更改可見的滾動位置。我的滾動視圖的後續委託方法進一步證明了這一點,它表明邊界確實沒有改變。這意味着y位置不是0.
是否禁止更改此特定委託方法中的內容偏移量?如果是這樣,我什麼時候可以改變偏移量?我試圖執行一次用戶完成拖動後(一定量後)將可見滾動區域返回到頂部的動畫。
謝謝!
我能得到這個在scrollViewWillBeginDecelerating工作。這在scrollViewDidEndDragging和scrollViewWillEndDragging中都不起作用。也許是因爲在那些方法被調用的時候它們還在加速呢?我不確定...我不知道爲什麼這是,也許別人可以擺脫光線。 – AbuZubair