2014-10-17 39 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

相关问题