[英]Multiple touch event in UIView
我在我的UIView應用程序之一中播放以下代碼。
我想在touchesBegan中處理單個觸摸事件,並在touchesMoved中處理多個觸摸。
這些代碼在模擬器中有效。 但是,當我將其轉移到iPhone設備時,我發現用兩根手指觸摸時,下面的代碼仍然偶爾運行,因為我聲明了“ if([touchs count] == 1)”,所以這不正確。 “ OCCASIONALLY”表示“ if”語句有時但並非總是有效。
是因為兩個手指沒有同時觸摸屏幕,而是比另一個手指落后了0.1秒,所以觸發該事件的原因是1根+ 1根手指同時觸摸了2根手指?
有人可以幫忙嗎?
- (void) touchesBegan: (NSSet * ) touches withEvent: (UIEvent * ) event
{
// handle only 1 finger
if ([touches count] == 1)
{
NSLog(@"touchesBegan touches = 1");
pt = [[touches anyObject] locationInView:self];
[self setNeedsDisplay];
}
}
為此,創建手勢識別器可能會更容易。 一種檢測1手指的觸摸,另一種檢測2的手指移動。 可以使用UIGestureRecognizer作為基類輕松創建它們。 然后,您可以使1手指觸摸取決於2手指移動失敗,這意味着要觸發1手指觸摸事件,2手指移動手勢識別器必須失敗。
您可以通過實現以下方法來做到這一點:
- (void)requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizer
手勢識別器是功能強大的東西,我建議您使用它們!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.