2013-05-05 79 views
3

我用下面的代碼行中平移姿勢識別器:的iOS - 姿勢識別translationInView

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

如果我移動相關聯的處理,以長按手勢識別,不存在translationInView方法。

我的問題是,如果使用長按識別器,我怎樣才能獲得相同的翻譯值?

感謝

回答

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; 
    } 
} 

希望它能幫助你。

2

感謝您的回覆。我真正想要的是translationInView的計算,它與locationInView不同。我解決了這個用下面的代碼:

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

它要求我跟蹤的起始位置,這是我沒有與泛手勢識別的事,但它似乎運作良好。我的代碼的其餘部分是圍繞翻譯而不是位置,所以我試圖避免爲了一致性而重寫其他代碼。

再次感謝您抽出時間回覆。