iOS開發(fā)中六種手勢識別

iOS開發(fā)中手勢識別有六種:

輕擊手勢(TapGestureRecognizer),

輕掃手勢 (SwipeGestureRecognizer),

長按手勢(LongPressGestureRecognizer),

拖動手勢(PanGestureRecognizer),

捏合手勢(PinchGestureRecognizer),

旋轉(zhuǎn)手勢(RotationGestureRecognizer),

1,輕擊手勢(TapGestureRecognizer)

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGesture:)];

tapGesture.numberOfTapsRequired = 1; //點(diǎn)擊次數(shù)

tapGesture.numberOfTouchesRequired = 1; //點(diǎn)擊手指數(shù)

[self.view addGestureRecognizer:tapGesture];

//輕擊手勢觸發(fā)方法

-(void)tapGesture:(UITapGestureRecognizer *)sender

{

//your code

}

2宏浩,長按手勢(LongPressGestureRecognizer)

UILongPressGestureRecognizer *longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressGesture:)];

//設(shè)置長按時(shí)間

longPressGesture.minimumPressDuration = 0.5;

[self.view addGestureRecognizer:longPressGesture];

//長按手勢觸發(fā)方法

-(void)longPressGesture:(id)sender

{

UILongPressGestureRecognizer *longPress = sender;

if (longPress.state == UIGestureRecognizerStateBegan)

{

//your code

}

}

說明:長按手勢的常用狀態(tài)如下

開始:UIGestureRecognizerStateBegan

改變:UIGestureRecognizerStateChanged

結(jié)束:UIGestureRecognizerStateEnded

取消:UIGestureRecognizerStateCancelled

失斒摇:UIGestureRecognizerStateFailed

3柳弄,輕掃手勢(SwipeGestureRecognizer)

UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeGesture:)];

//設(shè)置輕掃的方向

swipeGesture.direction = UISwipeGestureRecognizerDirectionRight; //向右

[self.view addGestureRecognizer:swipeGesture];

UISwipeGestureRecognizer *swipeGestureLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeGesture:)];

//設(shè)置輕掃的方向

swipeGestureLeft.direction = UISwipeGestureRecognizerDirectionLeft; //向左

[self.view addGestureRecognizer:swipeGestureLeft];

//輕掃手勢觸發(fā)方法

-(void)swipeGesture:(id)sender

{

UISwipeGestureRecognizer *swipe = sender;

if (swipe.direction == UISwipeGestureRecognizerDirectionLeft)

{

//向左輕掃

}

if (swipe.direction == UISwipeGestureRecognizerDirectionRight)

{

//向右輕掃

}

}

4精续,捏合手勢(PinchGestureRecognizer)

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

[self.view addGestureRecognizer:pinchGesture];

////捏合手勢觸發(fā)方法

-(void) pinchGesture:(id)sender

{

UIPinchGestureRecognizer *gesture = sender;

//手勢改變時(shí)

if (gesture.state == UIGestureRecognizerStateChanged)

{

//捏合手勢中scale屬性記錄的縮放比例

_imageView.transform = CGAffineTransformMakeScale(gesture.scale, gesture.scale);

}

//結(jié)束后恢復(fù)

if(gesture.state==UIGestureRecognizerStateEnded)

{

[UIView animateWithDuration:0.5 animations:^{

_imageView.transform = CGAffineTransformIdentity;//取消一切形變

}];

}

}

5上渴,拖動手勢(PanGestureRecognizer)

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

[self.view addGestureRecognizer:panGesture];

//拖動手勢觸發(fā)方法

-(void) panGesture:(id)sender

{

UIPanGestureRecognizer *panGesture = sender;

CGPoint movePoint = [panGesture translationInView:self.view];

//your code

}

6蝉稳,旋轉(zhuǎn)手勢(RotationGestureRecognizer)

UIRotationGestureRecognizer *rotationGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationGesture:)];

[self.view addGestureRecognizer:rotationGesture];

//旋轉(zhuǎn)手勢觸發(fā)方法

-(void)rotationGesture:(id)sender

{

UIRotationGestureRecognizer *gesture = sender;

if (gesture.state==UIGestureRecognizerStateChanged)

{

_imageView.transform=CGAffineTransformMakeRotation(gesture.rotation);

}

if(gesture.state==UIGestureRecognizerStateEnded)

{

[UIView animateWithDuration:1 animations:^{

_imageView.transform=CGAffineTransformIdentity;//取消形變

}];

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末破婆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子寻歧,更是在濱河造成了極大的恐慌掌栅,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件码泛,死亡現(xiàn)場離奇詭異猾封,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)噪珊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進(jìn)店門晌缘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人痢站,你說我怎么就攤上這事枚钓。” “怎么了瑟押?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長星掰。 經(jīng)常有香客問我多望,道長,這世上最難降的妖魔是什么氢烘? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任怀偷,我火速辦了婚禮,結(jié)果婚禮上播玖,老公的妹妹穿的比我還像新娘椎工。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布维蒙。 她就那樣靜靜地躺著掰吕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪颅痊。 梳的紋絲不亂的頭發(fā)上殖熟,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天,我揣著相機(jī)與錄音斑响,去河邊找鬼菱属。 笑死,一個胖子當(dāng)著我的面吹牛舰罚,可吹牛的內(nèi)容都是我干的纽门。 我是一名探鬼主播,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼营罢,長吁一口氣:“原來是場噩夢啊……” “哼赏陵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起愤钾,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤瘟滨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后能颁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杂瘸,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年伙菊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了败玉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡镜硕,死狀恐怖运翼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情兴枯,我是刑警寧澤血淌,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站财剖,受9級特大地震影響悠夯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜躺坟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一沦补、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧咪橙,春花似錦夕膀、人聲如沸虚倒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽魂奥。三九已至,卻和暖如春庞瘸,著一層夾襖步出監(jiān)牢的瞬間捧弃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工擦囊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留违霞,地道東北人。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓瞬场,卻偏偏與公主長得像买鸽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子贯被,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評論 2 349

推薦閱讀更多精彩內(nèi)容