2014-10-17 70 views
3

嗨返回不同的值,我有這段代碼在我的項目,UIPanGestureRecognizer translationInView用iPhone/iPad

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { 
    CGPoint translation = [scrollView.panGestureRecognizer translationInView:scrollView]; 
    if(translation.x < 0.0f) { 
     // Something 
    } 
} 

,它工作正常在iPhone上,但在iPad上的一些原因,我CGPoint總是返回( 0,0)。 任何想法爲什麼?

回答

4

我有同樣的問題,並提出了一個討厭的解決方法,使用velocityInView()方法。我沒有真正的iPad,所以我懷疑這個問題實際上可能與模擬器有關。

的Objective-C:

CGPoint velocity = [scrollView.panGestureRecognizer velocityInView: scrollView]; 
CGPoint translation = CGPointMake(velocity.x * 0.1, velocity.y * 0.1); 

斯威夫特:

let translation = scrollView.panGestureRecognizer.velocityInView(self) * 0.1 

我使用了一個非常方便的CGPoint擴展,你可以找到right here.

+0

Necromancering你的答案,但問題出現在兩個iPad和模擬器在我的情況。 – 2017-05-30 08:11:35