iOSでのジェスチャー操作

2796 ワード

目次:6種類のジェスチャー
  • パッティングジェスチャー(TapGestureRecognizer)
  • ドラッグジェスチャー(PanGestureRecognizer)
  • スイープジェスチャー(SwipeGestureRecognizer)
  • 長押しジェスチャー(LongPressGestureRecognizer)
  • つまみジェスチャー(PinchGestureRecognizer)
  • 回転ジェスチャー(RotationGestureRecognizer)
  • 一、パットジェスチャー
  • 使用形態
  •     UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];
        [self.view addGestureRecognizer:tap];
    
  • 注意事項一:親UIView,子UIButton:親UIViewにパッティングジェスチャーを追加ボタンをクリックしてこのイベントに応答できない以外は、UIButtonのuserInteractionEnablelをNOに設定すると、ボタンをクリックしてもタッチの結論に応答できます:親Viewのtabとbuttonのclickは同時に
  • をトリガーできません
  • 注意事項2:親UIView,子UIButton:UIButtonにタッピングジェスチャーを追加してtapのクリックイベントに優先応答し、tapクリックイベントがない場合にclcikに応答してuserInteractionEnabledを設定すると、両方のイベントは
  • に応答しません.
  • 注意事項3:親UIView,子UIButton:UIViewとUIButtonにパッティングジェスチャーを追加UIViewのtapに応答するクリックイベント
  • 注意事項4:子ViewがUITAbleViewである親Viewに対してもUITAbleViewに対してもタッチイベントを設定すると、didSelectRowAtIndexPathが
  • を実行できなくなる.
    二、ドラッグジェスチャー
  • 使用形態
  •     UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];
        [self.view addGestureRecognizer:tap];
        UIPanGestureRecognizer *gesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureRecognized:)];
        gesture.delegate = self;
        [self.scrollView addGestureRecognizer:gesture];
    
    //     
    //                  
    CGPoint transP = [pan translationInView:self.imageView];
    
    //     
    if (recognizer.state == UIGestureRecognizerStateBegan) { }
    //     
    if (recognizer.state == UIGestureRecognizerStateChanged) { }
    //    
    if (recognizer.state == UIGestureRecognizerStateEnded) { }
    
    if ([recognizer velocityInView:self.view].y < 0) {
        NSLog(@"  ");
    } else {
        NSLog(@"  ");
    }
    
    UIGestureRecognizerStatePossible,   //              (  )(Possible),          。      
         
    UIGestureRecognizerStateBegan,      //              (  )   (Began)。    run   ,         。
    UIGestureRecognizerStateChanged,    //           ,         (Changed)。    run   ,         。
    UIGestureRecognizerStateEnded,      //           ,         (Ended)。    run   ,                    UIGestureRecognizerStatePossible  。
    UIGestureRecognizerStateCancelled,  //           ,          (Cancelled)。    run   ,         。         UIGestureRecognizerStatePossible  。
     
    UIGestureRecognizerStateFailed,     //               ,       (Failed)。          ,          UIGestureRecognizerStatePossible。
     
    //      -              ,        (  ,    )     Began Changed  ,      (fail)     (cancell)
    UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded //        ,        。    run   ,         ,         UIGestureRecognizerStatePossible。