hitTtest:withEvent

一赏迟、系統(tǒng)是怎么找到第一響應(yīng)者的惰拱?? --只通過UIView及其子類查找

0 調(diào)用根視圖的hitTtest:withEvent淮逊,其的執(zhí)行過程如下:

Ie calls pointInside:withEvent:of self

If the return is NO,? hitTest:withEvent:? returns? nil . the end of the story.

If the return is YES, it sends? hitTest:withEvent:? messages to its subviews. it starts from the top-level subview, and continues to other views until a subview returns a non- nil? object, or all subviews receive the message.

If a subview returns a non- nil? object in the first time, the first? hitTest:withEvent:? returns that object. the end of the story.

If no subview returns a non- nil? object, the first? hitTest:withEvent:? returns? self

三袱耽、hitTest:withEvent應(yīng)用:

1)父視圖中有布局重疊的且都可響應(yīng)用戶操作的對象咒循,如:ScrollView and Button据途,如果Button在ScrollView下面,正常情況下Button是不會成為第一響應(yīng)者的叙甸,如果想讓Button可以響應(yīng)在其布局內(nèi)的觸摸事件颖医,可以在Button和ScrollView的父View中重寫hitTest:withEvent方法

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {

CGPoint hitPoint = [_testButton convertPoint:point fromView:self];

if ([_testButton pointInside:hitPoint withEvent:event])

? ? ? ? return _testButton;

return [super hitTest:point withEvent:event];

}//_testButton是指定響應(yīng)對象的 弱 引用

參考: 這里

2)UIView的子類不響應(yīng)觸摸事件,但其子View可以響應(yīng)裆蒸。通過設(shè)置userInteractionEnabled=NO熔萧,可以使UIView子類不響應(yīng)觸摸事件,但其會挾持子View僚祷,原因見3)

這時佛致,可以通過重寫hitTest:withEvent來實現(xiàn):

-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event {

id hitView = [super hitTest:point withEvent:event];

if (hitView == self) return nil;

else return hitView;

}

參考: 這里

3) userInteractionEnabled = NO的作用:使當(dāng)前的hitTest:withEvent返回nil,其它的類似屬性還有:Hidden=Y(jié)ES辙谜,alpha<0.01俺榆,(UIControl中Enabled=NO?装哆?)罐脊,事件發(fā)生的點在子View的幾何范圍內(nèi)定嗓,卻超過了父View的幾何范圍( clipsToBounds=NO時可出現(xiàn)此種情況 )

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市爹殊,隨后出現(xiàn)的幾起案子蜕乡,更是在濱河造成了極大的恐慌,老刑警劉巖梗夸,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件层玲,死亡現(xiàn)場離奇詭異,居然都是意外死亡反症,警方通過查閱死者的電腦和手機辛块,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铅碍,“玉大人润绵,你說我怎么就攤上這事“福” “怎么了尘盼?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長烦绳。 經(jīng)常有香客問我卿捎,道長,這世上最難降的妖魔是什么径密? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任午阵,我火速辦了婚禮,結(jié)果婚禮上享扔,老公的妹妹穿的比我還像新娘底桂。我一直安慰自己,他們只是感情好惧眠,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布籽懦。 她就那樣靜靜地躺著,像睡著了一般氛魁。 火紅的嫁衣襯著肌膚如雪暮顺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天呆盖,我揣著相機與錄音拖云,去河邊找鬼贷笛。 笑死应又,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的乏苦。 我是一名探鬼主播株扛,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼尤筐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了洞就?” 一聲冷哼從身側(cè)響起盆繁,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎旬蟋,沒想到半個月后油昂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡倾贰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年冕碟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匆浙。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡安寺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出首尼,到底是詐尸還是另有隱情挑庶,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布软能,位于F島的核電站迎捺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏埋嵌。R本人自食惡果不足惜破加,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望雹嗦。 院中可真熱鬧范舀,春花似錦、人聲如沸了罪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泊藕。三九已至辅辩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間娃圆,已是汗流浹背玫锋。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留讼呢,地道東北人撩鹿。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像悦屏,于是被迫代替她去往敵國和親节沦。 傳聞我的和親對象是個殘疾皇子键思,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

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