<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      iOS開發-手勢

      UIGestureRecognizer 用于檢測和處理手勢的抽象基類。提供了檢測用戶手勢的基本功能,如點按、滑動、捏合、旋轉等。通過使用 UIGestureRecognizer 子類,可以為視圖添加手勢識別功能,增強用戶交互體驗。

      常見的 UIGestureRecognizer 子類

      一些常見的手勢識別器子類:

      1. UITapGestureRecognizer:檢測點按手勢。
      2. UIPinchGestureRecognizer:檢測捏合(縮放)手勢。
      3. UIRotationGestureRecognizer:檢測旋轉手勢。
      4. UISwipeGestureRecognizer:檢測滑動手勢。
      5. UIPanGestureRecognizer:檢測平移(拖動)手勢。
      6. UILongPressGestureRecognizer:檢測長按手勢。

      使用 UIGestureRecognizer

      添加手勢識別器

      1. 創建手勢識別器
      2. 配置手勢識別器
      3. 將手勢識別器添加到視圖
      #import "ViewController.h"
      
      @interface ViewController ()
      
      @end
      
      @implementation ViewController
      
      - (void)viewDidLoad {
          [super viewDidLoad];
          
          self.view.backgroundColor = [UIColor whiteColor];
          
          UIView *gestureView = [[UIView alloc] initWithFrame:CGRectMake(50, 100, 300, 400)];
          gestureView.backgroundColor = [UIColor lightGrayColor];
          [self.view addSubview:gestureView];
          
          // 添加點按手勢識別器
          UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
          [gestureView addGestureRecognizer:tapGesture];
          
          // 添加捏合手勢識別器
          UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinch:)];
          [gestureView addGestureRecognizer:pinchGesture];
          
          // 添加旋轉手勢識別器
          UIRotationGestureRecognizer *rotationGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(handleRotation:)];
          [gestureView addGestureRecognizer:rotationGesture];
          
          // 添加滑動手勢識別器
          UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)];
          swipeGesture.direction = UISwipeGestureRecognizerDirectionRight; // 設置滑動方向
          [gestureView addGestureRecognizer:swipeGesture];
          
          // 添加平移手勢識別器
          UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
          [gestureView addGestureRecognizer:panGesture];
          
          // 添加長按手勢識別器
          UILongPressGestureRecognizer *longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
          [gestureView addGestureRecognizer:longPressGesture];
      }
      
      // 點按手勢處理方法
      - (void)handleTap:(UITapGestureRecognizer *)gesture {
          NSLog(@"Tap detected");
      }
      
      // 捏合手勢處理方法
      - (void)handlePinch:(UIPinchGestureRecognizer *)gesture {
          if (gesture.state == UIGestureRecognizerStateChanged) {
              gesture.view.transform = CGAffineTransformScale(gesture.view.transform, gesture.scale, gesture.scale);
              gesture.scale = 1.0;
          }
      }
      
      // 旋轉手勢處理方法
      - (void)handleRotation:(UIRotationGestureRecognizer *)gesture {
          if (gesture.state == UIGestureRecognizerStateChanged) {
              gesture.view.transform = CGAffineTransformRotate(gesture.view.transform, gesture.rotation);
              gesture.rotation = 0.0;
          }
      }
      
      // 滑動手勢處理方法
      - (void)handleSwipe:(UISwipeGestureRecognizer *)gesture {
          NSLog(@"Swipe detected");
      }
      
      // 平移手勢處理方法
      - (void)handlePan:(UIPanGestureRecognizer *)gesture {
          CGPoint translation = [gesture translationInView:gesture.view];
          gesture.view.center = CGPointMake(gesture.view.center.x + translation.x, gesture.view.center.y + translation.y);
          [gesture setTranslation:CGPointZero inView:gesture.view];
      }
      
      // 長按手勢處理方法
      - (void)handleLongPress:(UILongPressGestureRecognizer *)gesture {
          if (gesture.state == UIGestureRecognizerStateBegan) {
              NSLog(@"Long press detected");
          }
      }
      
      @end
      

      手勢識別器的屬性和方法

      • 屬性

        • enabled:一個布爾值,指示手勢識別器是否啟用。
        • state:手勢識別器的當前狀態(例如 UIGestureRecognizerStatePossible、UIGestureRecognizerStateBegan 等)。
        • view:手勢識別器附加的視圖。
        • cancelsTouchesInView:一個布爾值,指示手勢識別器是否阻止觸摸事件傳遞到視圖。
      • 方法

        • - (void)addTarget:(id)target action:(SEL)action;:添加目標和動作。
        • - (void)removeTarget:(id)target action:(SEL)action;:移除目標和動作。
        • - (void)requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizer;:要求另一個手勢識別器失敗,才能識別當前手勢。

      手勢識別器的狀態

      手勢識別器的狀態(UIGestureRecognizerState)有以下幾種:

      • UIGestureRecognizerStatePossible:手勢識別器沒有識別到手勢,但可能會在未來識別到。
      • UIGestureRecognizerStateBegan:手勢識別器識別到手勢開始。
      • UIGestureRecognizerStateChanged:手勢識別器識別到手勢發生變化。
      • UIGestureRecognizerStateEnded:手勢識別器識別到手勢結束。
      • UIGestureRecognizerStateCancelled:手勢識別器識別到手勢被取消。
      • UIGestureRecognizerStateFailed:手勢識別器識別到手勢失敗。
      posted @ 2024-07-08 09:07  機械心  閱讀(96)  評論(0)    收藏  舉報
      主站蜘蛛池模板: av资源在线看免费观看| 女同另类激情在线三区| 午夜性爽视频男人的天堂| 清水县| 亚洲另类激情专区小说婷婷久| 在线天堂最新版资源| 熟女一区二区中文字幕| 无码熟妇人妻av在线电影| 加勒比在线中文字幕一区二区| 不卡一区二区国产精品| 亚洲精品一品二品av| 成人福利一区二区视频在线 | 国产一区二区三区黄网| 亚洲大尺度无码专区尤物| 色综合网天天综合色中文| 中文日产幕无线码一区中文| 狠狠色婷婷久久综合频道日韩 | 溧阳市| 国产一区二区三区禁18| 噜噜噜亚洲色成人网站∨ | 亚洲国产精品午夜福利| 国内自拍视频在线一区| 国产欧美日韩在线在线播放| 日韩有码中文在线观看| 另类 专区 欧美 制服| 99国产精品白浆在线观看免费 | 国产欧美久久一区二区| 欧美和黑人xxxx猛交视频| 亚洲 中文 欧美 日韩 在线| 亚洲精品一区二区三区综合| 久久天堂综合亚洲伊人HD妓女| 在线看无码的免费网站| 国产麻豆放荡av激情演绎| 亚洲一卡2卡三卡四卡精品| 夜夜添狠狠添高潮出水| 加勒比无码人妻东京热| 国产AV永久无码青青草原| 国产中文字幕在线精品| 免费无码黄网站在线观看| 久久亚洲综合精品成人网| 欧美激情a∨在线视频播放|