0

我在UIViewController中實現了UIScrollView及其委託。它以水平方式滾動。scrollViewWillEndDraggin:WithVelocity:targetContentOffset委託方法錯誤

我想要的是當視圖被拖動並穩定時設置「磁性」。

要做到這一點,我正在傾聽委託人,特別是標題中提到的方法。 它向我返回最終目的地的偏移量。 然後我讓scollview使用setContentOffset或setvisiblerect方法顯示與此destionation相對應的視圖。

我也NSlog整個方法來捕捉錯誤。特別是在調用方法後,我有一個nslog確認我/否,如果方法被觸發。

問題:當我構建&運行時,第一個nslog通過拖動觸發平均3次。 所以整個效果看起來很奇怪,我不知道它是否有效。

我在網上發現了很少有關於此的東西。所以如果你有一些線索,這將是一個很大的幫助。 歡呼

我有點絕望:/

回答

1

所以,你想,當用戶完成拖動滾動視圖捕捉到一個有效的選擇?你應該使用

- (void)scrollViewWillBeginDragging:(UIScrollView *)thisScrollView 

- (void)scrollViewWillDidScroll:(UIScrollView *)thisScrollView 

方法能夠實現這一點。沒有看到你的代碼,我不能確切地告訴你如何去了解這一點,但我會建議保持在一個變量軌道​​的,並做一些算術移動滾動視圖與

[UIView beginAnimations: @"anim" context: nil]; 
[UIView setAnimationBeginsFromCurrentState: YES]; 
[UIView setAnimationDuration: movementDuration]; 
self.view.frame = CGRectOffset(self.view.frame, 0, movement); 
[UIView commitAnimations]; 

動議它到了適當的位置。

+0

感謝您的回答,但scrollViewWillDidScroll似乎不存在:/ – louisD 2012-07-13 07:53:21

+0

Agh其scrollViewDidScroll。抱歉! – jacerate 2012-07-13 13:03:34