簡體   English   中英

UIView中的多點觸控事件

[英]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

手勢識別器是功能強大的東西,我建議您使用它們!

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIGestureRecognizer_Class/Reference/Reference.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM