有沒有簡單的方法來檢測iPhone的這些手勢? 我可以使用touchesBegan,touchesMoved,touchesEnded。但是我怎樣才能實現手勢?你好。如何在iPhone上檢測左/右滑動?
13
A
回答
20
您正處在正確的軌道上。在觸摸開始之前,您應該存儲用戶第一次觸摸屏幕的位置。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
self.startPosition = [touch locationInView:self];
}
touchesEnded中的類似代碼給你最終的位置。通過比較這兩個位置,您可以確定移動的方向。如果x座標超出了某個容差,則可以左右滑動。
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint endPosition = [touch locationInView:self];
if (startPosition.x < endPosition.x) {
// Right swipe
} else {
// Left swipe
}
}
除非想在用戶仍然觸摸屏幕時檢測並跟蹤滑動,否則不需要觸摸移動。也可能值得測試的是,用戶在確定他們已經執行輕掃之前移動了最小距離。
15
如果您願意定位iPhone OS 3.2或更高版本(所有iPad或更新的iPhone),請使用UISwipeGestureRecognizer
對象。它會做到這一點,這是非常酷。
36
您將使用UISwipeGestureRecognizer對象檢測刷卡的觸摸和方向在
的UIView或iPhone SDK的任何地方。
UISwipeGestureRecognizer *rightRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(rightSwipeHandle:)];
rightRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
[rightRecognizer setNumberOfTouchesRequired:1];
//add the your gestureRecognizer , where to detect the touch..
[view1 addGestureRecognizer:rightRecognizer];
[rightRecognizer release];
UISwipeGestureRecognizer *leftRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(leftSwipeHandle:)];
leftRecognizer.direction = UISwipeGestureRecognizerDirectionLeft;
[leftRecognizer setNumberOfTouchesRequired:1];
[view1 addGestureRecognizer:leftRecognizer];
[leftRecognizer release];
- (void)rightSwipeHandle:(UISwipeGestureRecognizer*)gestureRecognizer
{
NSLog(@"rightSwipeHandle");
}
- (void)leftSwipeHandle:(UISwipeGestureRecognizer*)gestureRecognizer
{
NSLog(@"leftSwipeHandle");
}
我覺得你這個問題更好的解決方案
+0
感謝分享,它的工作原理。 – Signcodeindie 2012-11-05 02:58:56
相關問題
- 1. 如何檢測通知左/右滑動?
- 2. 檢測在片段中左右滑動?
- 3. 如何在Android中檢測左側或右側的滑動?
- 4. 在活動上滑動左/右效果
- 5. 如何檢測左右移動限制?
- 6. 如何在iPhone中從左向右滑動文本?
- 7. Android左右滑動?
- 8. 左右滑動UIView
- 9. ECSlidingViewController左右滑動
- 10. Jquery在手機上左右滑動
- 11. 向左或向右滑動並從左上角滑動更多
- 12. iPhone模擬器滑動右鍵工程,但向左滑動不?
- 13. 在Java中使用滑塊,如何檢測滑塊是左右變化的?
- 14. 如何檢測左側,右側,上下的移動
- 15. 如何製作左右活動滑塊?
- 16. 如何滑動SlidingDrawer左至右
- 17. 如何從右向左滑動Jquery?
- 18. 在React Native中檢測左側滑動
- 19. 檢測左或右滑動通過MouseArea Qt QML
- 20. Android - 滑動左側|右側。手勢檢測
- 21. 向左滑動並在GridView上向右滑動
- 22. 左右滑動的Android滑動菜單
- 23. jQuery:向左滑動並向右滑動
- 24. 如何讓圖像在空白div上從右向左滑動?
- 25. 如何在圖像幻燈片上從左向右滑動div?
- 26. android左右滑動gridView
- 27. 滑動左/右的事件
- 28. 從左到右滑動Divider
- 29. 向右或向左滑動
- 30. 滑動的UIViewController左/右
quixoto是正確的,內置GestureRecognizer更好。 – fyasar 2011-06-27 10:53:38
我可以將它用於UITableview嗎? – Mashhadi 2011-09-15 06:11:12
這是相當過時的,使用'UISwipeGestureRecognizer'更清潔(iOS 9) – Cbas 2016-04-14 19:03:08