手勢詳解





首先要知道的是

1.這3個屬性是作用于GestureRecognizers(手勢識別)與觸摸事件之間聯(lián)系的屬性镊绪。實際應(yīng)用中好像很少會把它們放到一起,大多都只是運用手勢識別陪捷,所以這3個屬性應(yīng)該很少會用到缩滨。

2.對于觸摸事件,window只會有一個控件來接收touch杀饵。這個控件是首先接觸到touch的并且重寫了觸摸事件方法(一個即可)的控件

3.手勢識別和觸摸事件是兩個獨立的事,只是可以通過這3個屬性互相影響谬擦,不要混淆切距。

4手勢是view外部來添加? ,? touch是view內(nèi)部處理,兩個是分開,且手勢優(yōu)先級比touch高

UIView?*view?=?[gestureRecognizer?view];//?這個view是手勢所屬的view,也就是增加手勢的那個view

cancelsTouchesInView/delaysTouchesBegan/delaysTouchesEnded

(1)在默認(rèn)情況下(即這3個屬性都處于默認(rèn)值的情況下)(這些屬性是 手勢對它自己的view!!!)

如果觸摸window惨远,首先由window上最先符合條件的控件(該控件記為hit-test

view)接收到該touch并觸發(fā)觸摸事件touchesBegan谜悟。同時如果某個控件的手勢識別器接收到了該touch,就會進行識別北秽。手勢識別成功之后發(fā)送觸摸事件touchesCancelled給hit-testview葡幸,hit-test

view不再響應(yīng)touch。(即打斷 往上傳遞的響應(yīng)鏈條)

(2)cancelsTouchesInView:(默認(rèn)yes)

默認(rèn)為YES,這種情況下當(dāng)手勢識別器識別到touch之后贺氓,會發(fā)送touchesCancelled給hit-testview以取消hit-test view對touch的響應(yīng)蔚叨,這個時候只有手勢識別器響應(yīng)touch。

當(dāng)設(shè)置成NO時,手勢識別器識別到touch之后不會發(fā)送touchesCancelled給hit-test蔑水,這個時候手勢識別器和hit-test view均響應(yīng)touch邢锯。

(3)delaysTouchesBegan:(默認(rèn)no)

默認(rèn)是NO,這種情況下當(dāng)發(fā)生一個touch時搀别,手勢識別器先捕捉到到touch丹擎,然后發(fā)給hit-testview,兩者各自做出響應(yīng)领曼。

如果設(shè)置為YES鸥鹉,手勢識別器在識別的過程中(注意是識別過程)蛮穿,不會將touch發(fā)給hit-test

view庶骄,即hit-testview不會有任何觸摸事件。!!只有在識別失敗之后才會將touch發(fā)給hit-testview践磅,這種情況下hit-test

view的響應(yīng)會延遲約0.15ms单刁。

(4)delaysTouchesEnded:(默認(rèn)yes)

默認(rèn)為YES。這種情況下發(fā)生一個touch時府适,在手勢識別成功后,發(fā)送給touchesCancelled消息給hit-testview羔飞,手勢識別失敗時,會延遲大概0.15ms,期間沒有接收到別的touch才會發(fā)送touchesEnded檐春。如果設(shè)置為NO逻淌,則不會延遲,即會立即發(fā)送touchesEnded以結(jié)束當(dāng)前觸摸疟暖。







gestureRecognizer.state? 手勢的6種狀態(tài)

1.UIGestureRecognizerStateBegan

2.UIGestureRecognizerStateChanged

3.UIGestureRecognizerStateEnded

4.UIGestureRecognizerStateCancelled

5.UIGestureRecognizerStateFailed

6.UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded


// 是否開啟手勢

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



同時執(zhí)行手勢

// 詢問delegate卡儒,兩個手勢是否同時接收消息,返回YES同事接收俐巴。返回NO骨望,不同是接收(如果另外一個手勢返回YES,則并不能保證不同時接收消息)the default implementation returns NO欣舵。

//?這個函數(shù)一般在一個手勢接收者要阻止另外一個手勢接收自己的消息的時候調(diào)用

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




// 詢問delegate是否允許手勢接收者接收一個touch對象

//?返回YES擎鸠,則允許對這個touch對象審核,NO缘圈,則不允許劣光。

//?這個方法在touchesBegan:withEvent:之前調(diào)用,為一個新的touch對象進行調(diào)用

-?(BOOL)gestureRecognizer:(UIGestureRecognizer?*)gestureRecognizer?shouldReceiveTouch:(UITouch?*)touch





手勢共存 與 排斥(以下是手勢對手勢!!)

1:[tapGesture? requireGestureRecognizerToFail:swipeGesture]

swipe判斷失敗后? 才判斷tap

2:(代理方法)-

(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer

shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer

*)otherGestureRecognizer

這里返回YES糟把,代表跟別的手勢共存绢涡;如果返回NO,不一定代表不共存(可能另一個手勢返回yes就可以共存,只要兩個手勢任一返回yes就可以)

3:-

(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer

shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer

*)otherGestureRecognizer

另外一個手勢識別fail的時候糊饱,才會識別自己

4-

(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer

shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer

*)otherGestureRecognizer

我被另外一個手勢變成Fail

(6)button 是用這個方法發(fā)送時間(補充)

- (void)sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末垂寥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌滞项,老刑警劉巖狭归,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異文判,居然都是意外死亡过椎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門戏仓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疚宇,“玉大人,你說我怎么就攤上這事赏殃》蟠” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵仁热,是天一觀的道長榜揖。 經(jīng)常有香客問我,道長抗蠢,這世上最難降的妖魔是什么举哟? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮迅矛,結(jié)果婚禮上妨猩,老公的妹妹穿的比我還像新娘。我一直安慰自己秽褒,他們只是感情好壶硅,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著震嫉,像睡著了一般森瘪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上票堵,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天扼睬,我揣著相機與錄音,去河邊找鬼悴势。 笑死窗宇,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的特纤。 我是一名探鬼主播军俊,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼捧存!你這毒婦竟也來了粪躬?” 一聲冷哼從身側(cè)響起担败,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎镰官,沒想到半個月后提前,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡泳唠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年狈网,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笨腥。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡拓哺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出脖母,到底是詐尸還是另有隱情士鸥,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布镶奉,位于F島的核電站础淤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏哨苛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一币砂、第九天 我趴在偏房一處隱蔽的房頂上張望建峭。 院中可真熱鬧,春花似錦决摧、人聲如沸亿蒸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽边锁。三九已至,卻和暖如春波岛,著一層夾襖步出監(jiān)牢的瞬間茅坛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工则拷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留贡蓖,地道東北人。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓煌茬,卻偏偏與公主長得像斥铺,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子坛善,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

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