ios系統(tǒng)提供了一些常用的手勢(shì)(UIgestureRecognizer的子類)歹颓,方便我們直接使用毒坛。
UIGestureRecognizer的繼承關(guān)系:
6種手勢(shì)中只有UITapGestureRecognizer
是離散型手勢(shì)
- 離散型手勢(shì)特點(diǎn):
一旦識(shí)別就無法取消芬首,而且只會(huì)調(diào)用一次手勢(shì)操作事件(就是初始化手勢(shì)時(shí)指定的回調(diào)方法)蛙吏。
- 連續(xù)性手勢(shì)特點(diǎn):
另外五種是連續(xù)性手勢(shì)涉瘾,他們會(huì)多次調(diào)用手勢(shì)操作事件要出,而且在連續(xù)手勢(shì)識(shí)別后可以取消手勢(shì)捉偏。
添加手勢(shì)識(shí)別的步驟
1.創(chuàng)建手勢(shì)識(shí)別對(duì)象實(shí)例
創(chuàng)建時(shí)倒得,指定一個(gè)回調(diào)方法,當(dāng)手勢(shì)開始夭禽,改變霞掺、或結(jié)束時(shí),執(zhí)行回調(diào)方法讹躯。
2.設(shè)置手勢(shì)識(shí)別器對(duì)象實(shí)例的相關(guān)屬性
這部分不是必須編寫的菩彬。
3.將手勢(shì)識(shí)別添加到對(duì)應(yīng)的視圖中
每個(gè)手勢(shì)只對(duì)應(yīng)一個(gè) View,當(dāng)用戶觸摸的范圍在 View 的邊界內(nèi)時(shí)潮梯,如果手勢(shì)和預(yù)定的一樣骗灶,那就會(huì)執(zhí)行回調(diào)方法。
點(diǎn)擊手勢(shì)TapGestureRecognizer
- 新建tap手勢(shì)
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGesture:)];
- 設(shè)置點(diǎn)擊次數(shù)和點(diǎn)擊手指數(shù)
這里可以控制用戶的單擊或者是雙擊
tapGesture.numberOfTapsRequired = 1; //點(diǎn)擊次數(shù)
tapGesture.numberOfTouchesRequired = 1; //點(diǎn)擊手指數(shù)
- 將手勢(shì)添加到對(duì)應(yīng)視圖
[self.view addGestureRecognizer:tapGesture];
- 點(diǎn)擊觸發(fā)的方法
-(void)tapGesture:(id)sender
{
//點(diǎn)擊后要做的事情
}
長(zhǎng)按手勢(shì)LongPressGestureRecognizer
- 新建長(zhǎng)按手勢(shì)
UILongPressGestureRecognizer *longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressGesture:)];
- 設(shè)置長(zhǎng)按時(shí)間
longPressGesture.minimumPressDuration = 0.5; //(2秒)
- 添加長(zhǎng)按手勢(shì)到對(duì)應(yīng)視圖
[self.view addGestureRecognizer:longPressGesture];
- 長(zhǎng)按觸發(fā)的方法
-(void)longPressGesture:(id)sender{
//長(zhǎng)按后要做的事情
}
輕掃手勢(shì)SwipeGestureRecognizer
- 添加輕掃手勢(shì)
UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeGesture:)];
- 設(shè)置輕掃的方向
swipeGesture.direction = UISwipeGestureRecognizerDirectionRight; //默認(rèn)向右
- 添加輕掃手勢(shì)到對(duì)應(yīng)視圖
[self.view addGestureRecognizer:swipeGesture];
- 輕掃觸發(fā)的方法
-(void)swipeGesture:(id)sender{
//輕掃后要做的事情
}
捏合手勢(shì)PinchGestureRecognizer
- 添加捏合手勢(shì)
UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchGesture:)];
- 將捏合手勢(shì)添加到對(duì)應(yīng)視圖
[self.view addGestureRecognizer:pinchGesture];
- 捏合觸發(fā)的方法
-(void)pinchGesture:(id)sender{
//捏合后要做的事
}
拖動(dòng)手勢(shì)PanGestureRecognizer
- 添加拖動(dòng)手勢(shì)
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGesture:)];
- 將拖動(dòng)手勢(shì)添加到對(duì)應(yīng)視圖
[self.view addGestureRecognizer:panGesture];
- 拖動(dòng)觸發(fā)的方法
-(void)panGesture:(id)sender{
//拖動(dòng)后要做的事
}
旋轉(zhuǎn)手勢(shì)RotationGestureRecognizer
- 添加旋轉(zhuǎn)手勢(shì)
UIRotationGestureRecognizer *rotationGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationGesture:)];
- 將旋轉(zhuǎn)手勢(shì)添加到對(duì)應(yīng)視圖
[self.view addGestureRecognizer:rotationGesture];
- 旋轉(zhuǎn)觸發(fā)的方法
-(void)rotationGesture:(id)sender{
//旋轉(zhuǎn)后要做的事
}