UIButton點(diǎn)擊無(wú)效情況整理

1. isUserInteractionEnable問(wèn)題

最常見(jiàn)的是將UIButton addSubview 進(jìn)一個(gè)UIView后UIView的isUserInteractionEnabled是false的
不過(guò)UIView的isUserInteractionEnabled默認(rèn)是true的帚屉,也就是如果在UIButton上面有一個(gè)UIView擋著它的話它也不會(huì)相應(yīng)點(diǎn)擊事件喲
目前發(fā)現(xiàn)UILabel是默認(rèn)false的

let view = UIView()
let button = UIButton()
view.addSubview(button)
view.isUserInteractionEnabled = true

2. target function參數(shù)

target的方法參數(shù)值不對(duì)漾峡,這種情況屬于action找不到合適的target。Swift3中建議使用#selector來(lái)設(shè)置action灰殴,以期望在編譯期能夠發(fā)現(xiàn)這樣的輸漏敬特,感覺(jué)很棒牺陶,然而如果屬于這種參數(shù)類型不對(duì)的,#selector也無(wú)法在編譯期檢測(cè)出來(lái)掰伸。

init(frame:CGRect){
    super.init(frame:frame)
    let button = UIButton()
    button.addTarget(self, action:#selector(self.onButtonClick(sender:)), for UIControlEvents.touchUpInside)
}
func onButtonClick(sender:MyButtonClass){
    // do somthing
}

3.superView frame & bounds

UIButton addSuview進(jìn)一個(gè)UIView(或別的UIView的子類中)皱炉,顯式的設(shè)置了UIButton的frame狮鸭,使得UIButton可以正確的在界面上被看到,然而UIView的frame沒(méi)有設(shè)置(這可能是因?yàn)椴磺‘?dāng)?shù)氖褂肧napkit或者其他自動(dòng)布局導(dǎo)致)歧蕉,因此灾部,就算設(shè)置了isUserInteractionEnable后惯退,點(diǎn)擊仍然不能觸發(fā)事件,原因是催跪,點(diǎn)擊事件首先要被UIView接受到锁蠕,然后才能傳給UIButton懊蒸,而UIView的frame可能根本就是一個(gè)CGRectZero,根本沒(méi)有可以點(diǎn)擊的區(qū)域骑丸,因此UIButton也無(wú)法接受到點(diǎn)擊事件舌仍。可以通過(guò)
Xcode的Debug View Hierarchy發(fā)現(xiàn)這個(gè)問(wèn)題抡笼。

3.1:

看似一切正常的頁(yè)面底部點(diǎn)贊按鈕(空心桃心處)


配圖3.1

3.2:

選擇桃心按鈕可以看到Button區(qū)域,其中UIButtonInCell是UIButton的子類


配圖3.2

3.3:

選擇UIButtonInCell的superView:alltuu.PhotoViewerBottomIconButton,發(fā)現(xiàn)這個(gè)frame在Debug View Hierarchy中看不到


配圖3.3

3.4:

查看左側(cè)的視圖瀏覽器推姻,view的結(jié)構(gòu)如下圖


配圖3.4

3.5:

發(fā)現(xiàn)alltuu.PhotoViewerBottomIconButton旁邊有一個(gè)紫色的感嘆號(hào),說(shuō)明這里有問(wèn)題藏古,把鼠標(biāo)放在感嘆號(hào)上,提示:width is ambiguous拧晕,也就是提示自動(dòng)布局的約束條件不確定隙姿,因此frame的寬度不確定厂捞,所以frame看不到输玷。


配圖3.5

在實(shí)際項(xiàng)目中碰到這類問(wèn)題會(huì)繼續(xù)更新到這里

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末欲鹏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子臭墨,更是在濱河造成了極大的恐慌,老刑警劉巖胧弛,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異结缚,居然都是意外死亡损晤,警方通過(guò)查閱死者的電腦和手機(jī)掺冠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門码党,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)德崭,“玉大人,你說(shuō)我怎么就攤上這事眉厨。” “怎么了兽狭?”我有些...
    開(kāi)封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵鹿蜀,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我服球,道長(zhǎng),這世上最難降的妖魔是什么斩熊? 我笑而不...
    開(kāi)封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任往枣,我火速辦了婚禮粉渠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘霸株。我一直安慰自己雕沉,他們只是感情好去件,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著尤溜,像睡著了一般肠牲。 火紅的嫁衣襯著肌膚如雪靴跛。 梳的紋絲不亂的頭發(fā)上缀雳,一...
    開(kāi)封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天肥印,我揣著相機(jī)與錄音,去河邊找鬼绝葡。 笑死深碱,一個(gè)胖子當(dāng)著我的面吹牛藏畅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播愉阎,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼绞蹦,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼榜旦!你這毒婦竟也來(lái)了幽七?” 一聲冷哼從身側(cè)響起溅呢,我...
    開(kāi)封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤猿挚,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后驶鹉,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡室埋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了词顾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片八秃。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肉盹,死狀恐怖昔驱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情上忍,我是刑警寧澤骤肛,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布窍蓝,位于F島的核電站,受9級(jí)特大地震影響吓笙,放射性物質(zhì)發(fā)生泄漏淑玫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一絮蒿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧叁鉴,春花似錦、人聲如沸幌墓。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至袭祟,卻和暖如春验残,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背您没。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留胆绊,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓压状,卻偏偏與公主長(zhǎng)得像仆抵,于是被迫代替她去往敵國(guó)和親种冬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

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

  • 7娱两、不使用IB是莺匠,下面這樣做有什么問(wèn)題十兢? 6趣竣、請(qǐng)說(shuō)說(shuō)Layer和View的關(guān)系旱物,以及你是如何使用它們的。 1.首先...
    AlanGe閱讀 673評(píng)論 0 1
  • ViewsBecause view objects are the main way your applicati...
    梁光飛閱讀 604評(píng)論 0 0
  • 背景 接上篇宵呛,在理解什么是git后,總需要?jiǎng)邮植僮饕幌卤λ耄€是那句話針對(duì)Git很熟練的大牛們可以點(diǎn)擊返回或者關(guān)閉啦 ...
    泥阿布_Abner閱讀 1,052評(píng)論 0 0
  • 唐僧四人上路那日封孙,我站在鳳攆之上,苦苦哀求:“御弟哥哥虎忌,你我在此恩愛(ài)一生,不比你辛苦西天取經(jīng)來(lái)得快活嗎橱鹏?權(quán)利與真心...
    遇見(jiàn)而已閱讀 1,836評(píng)論 37 55