亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

IOS  手勢操作詳解及實例總結(jié)篇

 更新時間:2017年01月08日 14:31:18   作者:gccll  
這篇文章主要介紹了IOS 手勢操作詳解及實例總結(jié)篇的相關(guān)資料,需要的朋友可以參考下

iOS手勢操作總結(jié)

手勢操作種類

  • UITapGestureRecognizer: 敲擊,點擊
  • UILongPressGestureRecognizer: 長按
  • UIPinchGestureRecognizer: 縮放
  • UIRotationGestureRecognizer: 旋轉(zhuǎn)
  • UISwipeGestureRecongizer: 輕掃
  • UIPanGestureRecognizer: 拖拽

手勢操作的代理方法(UIGestureRecognizerDelegate)

手勢可能發(fā)生的條件,返回NO可以阻止此手勢的發(fā)生或者此手勢不產(chǎn)生任何效果

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer;

是否允許多個手勢同時發(fā)生

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)
gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:
(UIGestureRecognizer *)otherGestureRecognizer;

UITapGestureRecognier敲擊,點擊手勢

  • 設(shè)置屬性numberOfTapsRequired可以指定需要幾根手指才能觸發(fā)事件
  • numberOfTouchesRequired:可以設(shè)置需要敲擊幾次觸發(fā)事件
 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];

  // 設(shè)置代理
  tap.delegate = self;

  // 設(shè)置點擊次數(shù)觸發(fā)手勢事件
  tap.numberOfTapsRequired = 1;

  // 設(shè)置需要點擊的手指數(shù)
  tap.numberOfTouchesRequired = 1;

  [self.image addGestureRecognizer:tap];

UILongPressGestureRecongnizer長按

  • minimumPressDuration設(shè)置長按的最小間隔時間,也就是說按下開始和手指離開時的中間間隔,如果小于這個值則不會被認(rèn)為是長按操作
  • allowableMovement:長按過程中是否允許移動
  UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];

  // 代理
  longPress.delegate = self;

  // 設(shè)置最小間隔時間, 手指按下與離開間隔時間
  longPress.minimumPressDuration = 1.0;

  // 按下過程中允許移動的像素
  longPress.allowableMovement = 30;

  [self.image addGestureRecognizer:longPress];

UIPinchGestureRecognizer縮放手勢

scale: 設(shè)置縮放比例,相對于原來大小

 UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinch:)];

  // 代理
  pinch.delegate = self;

  // 設(shè)置縮放比例
  pinch.scale = 1.2;

  [self.image addGestureRecognizer:pinch];

UIRotationGestureRecognizer旋轉(zhuǎn)手勢

rotation: 旋轉(zhuǎn)弧度,要保證每次都在上一次位置開始旋轉(zhuǎn),而不是回歸初始位置,必須要在動作方法里將此值清零

- (void)setupRotation
{
  UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotation:)];

  // 設(shè)置代理
  rotation.delegate = self;

  [self.image addGestureRecognizer:rotation];
}

- (void)rotation:(UIRotationGestureRecognizer *)rotation
{
  // 旋轉(zhuǎn)角度
  CGFloat radian = rotation.rotation;

  self.image.transform = CGAffineTransformRotate(self.image.transform, radian);

  // 復(fù)位,保證每次都是在上一次位置開始轉(zhuǎn),而不是每次都回歸初始位置再轉(zhuǎn)
  rotation.rotation = 0;
}

UISwipeGestureRecognizer輕掃, 手指按下然后在屏幕上滑動

輕掃分四個方向(上下左右),并且如果要在一個控件上同時添加一個以上的輕掃動作,必須對每個動作添加一個對象。也就是說每個方向的動作對應(yīng)一個對象。

direction: 指定輕掃動作的方向

typedef NS_OPTIONS(NSUInteger, UISwipeGestureRecognizerDirection) {
  UISwipeGestureRecognizerDirectionRight = 1 << 0, // 從左向右
  UISwipeGestureRecognizerDirectionLeft = 1 << 1, // 從右向左
  UISwipeGestureRecognizerDirectionUp  = 1 << 2, // 從下往上
  UISwipeGestureRecognizerDirectionDown = 1 << 3 // 從上往下
};
 UISwipeGestureRecognizer *swipeUp = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe:)];

  // 設(shè)置代理
  swipeUp.delegate = self;

  // 修改方向, 從下往上
  swipeUp.direction = UISwipeGestureRecognizerDirectionUp;

  [self.image addGestureRecognizer:swipeUp];

  // 添加其他方向手勢
  UISwipeGestureRecognizer *swipeDown = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe:)];

  // 修改方向, 從下往上
  swipeDown.direction = UISwipeGestureRecognizerDirectionDown;

  [self.image addGestureRecognizer:swipeDown];

UIPanGestureRecognizer拖拽,按下拖動控件操作

注意點:手勢的觸摸點locationInView和手勢的移動點translationInView是不一樣的,前者是用locationInView取得是指手指在當(dāng)前控件中的坐標(biāo),后者表示相對于父view的rect

  UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];

  // 設(shè)置代理
  pan.delegate = self;

  [self.image addGestureRecognizer:pan];

  // 手勢的觸摸點
  // CGPoint p = [pan locationInView:self.image];

  // 手勢的移動點(每次移動的位移點)
  CGPoint transP = [pan translationInView:self.image];

  NSLog(@"%f, %f", transP.x, transP.y);

  self.image.transform = CGAffineTransformTranslate(self.image.transform, transP.x, transP.y);

  // 復(fù)位
  [pan setTranslation:CGPointZero inView:self.image];



感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • iOS中關(guān)于Taptic-Engine震動反饋的深入解析

    iOS中關(guān)于Taptic-Engine震動反饋的深入解析

    這篇文章主要給大家介紹了關(guān)于iOS中關(guān)于Taptic-Engine震動反饋的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • iOS13即將到來,iOS推送DeviceToken適配方案詳解

    iOS13即將到來,iOS推送DeviceToken適配方案詳解

    這篇文章主要介紹了iOS13即將到來,iOS推送DeviceToken適配方案詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • iOS開發(fā)教程之常見的性能優(yōu)化技巧

    iOS開發(fā)教程之常見的性能優(yōu)化技巧

    這篇文章主要給大家介紹了關(guān)于iOS開發(fā)教程之常見的性能優(yōu)化技巧,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用iOS具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • iOS自定義日歷控件的簡單實現(xiàn)過程

    iOS自定義日歷控件的簡單實現(xiàn)過程

    這篇文章主要為大家詳細(xì)介紹了iOS自定義日歷控件的簡單實現(xiàn)過程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • iOS9中的WebKit 與 Safari帶來的驚喜

    iOS9中的WebKit 與 Safari帶來的驚喜

    這篇文章主要介紹了iOS9中的WebKit 與 Safari帶來的驚喜的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • iOS應(yīng)用開發(fā)中矢量圖的使用及修改矢量圖顏色的方法

    iOS應(yīng)用開發(fā)中矢量圖的使用及修改矢量圖顏色的方法

    這篇文章主要介紹了iOS應(yīng)用開發(fā)中矢量圖的使用及修改矢量圖顏色的方法,文中的方法是在Adobe Illustrator中繪制矢量圖然后導(dǎo)入Xcode中使用,需要的朋友可以參考下
    2016-03-03
  • iOS中添加文本鏈接和圖片示例代碼

    iOS中添加文本鏈接和圖片示例代碼

    這篇文章主要給大家介紹了關(guān)于iOS中添加文本鏈接和圖片的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • iOS文本的多語言適配以及實踐指南

    iOS文本的多語言適配以及實踐指南

    項目開發(fā)中考慮到不同國家的用戶,不同國家的語言,因而在APP里面做了多語言,所以下面這篇文章主要給大家介紹了關(guān)于iOS文本的多語言適配以及實踐的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • 使用AVFoundation實現(xiàn)視頻錄制詳解

    使用AVFoundation實現(xiàn)視頻錄制詳解

    這篇文章主要介紹了使用AVFoundation實現(xiàn)視頻錄制詳解的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • iOS開發(fā)之TextField禁用粘貼、選擇和全選功能

    iOS開發(fā)之TextField禁用粘貼、選擇和全選功能

    這篇文章主要為大家詳細(xì)介紹了iOS開發(fā)之TextField禁用粘貼、選擇和全選功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09

最新評論