2014-10-17 3 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); 

Swift:

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

Я использую очень удобное расширение CGPoint вы можете найти right here.

+0

Necromancering вашего ответа, но проблема возникает на оба ipad и симулятор в моем случае. –

Смежные вопросы