UIPanGestureRecognizer translationInView在iPhone / ipad上返回不同的值

时间:2014-10-17 21:25:51

标签: uiscrollview uipangesturerecognizer

嗨,我的项目中有一些代码,

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

它在iPhone上工作正常,但出于某种原因在iPad上,我的CGPoint总是返回(0,0)。 关于为什么的任何想法?

1 个答案:

答案 0 :(得分:4)

我遇到了同样的问题,并使用velocityInView()方法提出了一个讨厌的解决方法。我没有真正的iPad,所以我怀疑这个问题可能与模拟器有关。

目标-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.