iOS - Gesture Recognizer translationInView

时间:2013-05-05 07:22:45

标签: ios uigesturerecognizer

我在平移手势识别器中使用以下代码行:

CGPoint translation = [sender translationInView:self.view];

如果我将相关处理移动到长按手势识别器,则没有translateInView方法。

我的问题是,如果使用长按识别器,如何获得相同的翻译值?

由于

2 个答案:

答案 0 :(得分:2)

CGPoint location = [recognizer locationInView:self.view];

对于UILongPressgestureRecognizerv,它不在视图中进行翻译,它是locationInView。

-(void)handleLongPress:(UILongPressGestureRecognizer *)recognizer {
CGPoint location = [recognizer locationInView:self.view];

switch (recognizer.state) {
    case UIGestureRecognizerStateBegan:
        break;
    case UIGestureRecognizerStateChanged:
        break;
    case UIGestureRecognizerStateEnded:
        break;
    default:
        break;
    }   
}

希望它会对你有所帮助。

答案 1 :(得分:2)

感谢您的回复。我真正想要的是translateInView的计算,它与locationInView不同。我用以下代码解决了这个问题:

CGPoint location = [sender locationInView:self.view];
CGPoint translation;
translation.x = location.x - viewStartLocation.x;
translation.y = location.y - viewStartLocation.y;

它确实需要我跟踪起始位置,这与平移手势识别器没有关系,但它似乎运行良好。我的其余代码以转换而不是位置为中心,因此我试图避免为了保持一致而重写其他代码。

再次感谢您花时间回复。