UIButton無法響應點擊事件

UIButton是iOS開發(fā)中最常用的控件矮男,初學者需要了解其基本定義和常用設(shè)置捐川,以便在開發(fā)在熟練運用。
但是有些時候UIButton無法響應點擊事件傻昙。

問題描述


因為項目需要闺骚,需要UITableView上添加固定的篩選表頭,一直固定妆档,不能隨UITableView滾動僻爽。所以直接將表頭與UITableView分離,將它添加到控制器的UIView上贾惦,即添加到UITableView的父視圖上胸梆,與UITableView同級。然后表頭上添加三個UIButton须板,效果達到預期碰镜,但問題隨即出現(xiàn)。篩選表頭上的UIButton無法響應點擊事件逼纸,剛開始以為造成的原因是手誤把UIButton的父視圖或者UIButton屬性userInteractionEnabled被設(shè)置為NO洋措,試著UIButton的父視圖和UIButton的userInteractionEnabled統(tǒng)統(tǒng)設(shè)置YES,仍然無法解決這個問題杰刽。


UIButton無法響應點擊事件

問題分析


UIButton不能響應點擊事件的原因大概有以下三種:

  1. UIButton的userInteractionEnabled默認YES菠发,如果設(shè)置NO,UIButton就不會有響應點擊事件贺嫂,同時如果 UIButton的父視圖的userInteractionEnabled屬性為NO滓鸠,UIButton也會受到影響,不會有響應第喳。
  2. 另外就是button本身的frame問題糜俗,或者有沒有一層視圖蓋住了button導致按鈕無響應,簡單來說就是按鈕本身和按鈕他爹(父視圖)的問題曲饱。
  3. UIButton不能響應點擊事件的另一個原因是和UIButton的父視圖有關(guān)系悠抹。如果父視圖frame是CGRectZero,或者UIButton超出父視圖扩淀,UIButton還是會顯示的楔敌,但詭異的是UIButton是不會響應點擊事件的,所以要調(diào)整父視圖的frame或者UIButton位置驻谆。

第一種:試過了卵凑,從UIButton的父視圖和UIButton的userInteractionEnabled統(tǒng)統(tǒng)設(shè)置YES,這個問題仍然無法解決胜臊,所以不是這個問題勺卢。排除。
第二種:因為用到MBProgressHUD象对,所以第二種有可能黑忱。但經(jīng)過調(diào)試,發(fā)現(xiàn)MBProgressHUD是隱藏的,不會遮擋點擊事件杨何,同時假設(shè)MBProgressHUD不隱藏酱塔,應該同級的UITableView也不能點擊,但UITableView能響應點擊事件危虱,所以第二種也排除羊娃。
第三種:但先設(shè)置UIButton的父視圖背景色為紅色,同時先把UIButton都去掉埃跷,調(diào)試發(fā)現(xiàn)UIView并沒有顯示出來蕊玷。打印UIView的frame,值為{{0, 0}, {414, 44}}弥雹。原來問題出現(xiàn)在這里垃帅。為什么不能顯示?

UIView不能顯示

原來我設(shè)置了frame剪勿,還用Masonry設(shè)置約束贸诚。設(shè)置了約束,frame是無效的厕吉,同時因為約束設(shè)置不合理酱固,導致UIView無法顯示。

[self.filerView mas_makeConstraints:^(MASConstraintMaker *make) 
{ 
   make.left.equalTo(self.view.mas_left); 
   make.right.equalTo(self.view.mas_right); 
   make.top.equalTo(self.view.mas_top); 
}];

問題解決


UIView的frame去掉头朱,同時設(shè)置一個高度約束

[self.filerView mas_makeConstraints:^(MASConstraintMaker *make)
{ 
   make.left.equalTo(strongSelf.view.mas_left); 
   make.right.equalTo(strongSelf.view.mas_right); 
   make.top.equalTo(strongSelf.view.mas_top); 
   make.height.equalTo(@44); 
}]; 

UIView成功顯示


UIView成功顯示

然后加上UIButton运悲,UIButton能響應點擊事件


UIButton能響應點擊事件
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市项钮,隨后出現(xiàn)的幾起案子班眯,更是在濱河造成了極大的恐慌,老刑警劉巖烁巫,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件署隘,死亡現(xiàn)場離奇詭異,居然都是意外死亡亚隙,警方通過查閱死者的電腦和手機定踱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恃鞋,“玉大人,你說我怎么就攤上這事亦歉⌒衾耍” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵肴楷,是天一觀的道長水由。 經(jīng)常有香客問我,道長赛蔫,這世上最難降的妖魔是什么砂客? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任泥张,我火速辦了婚禮,結(jié)果婚禮上鞠值,老公的妹妹穿的比我還像新娘媚创。我一直安慰自己,他們只是感情好彤恶,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布钞钙。 她就那樣靜靜地躺著,像睡著了一般声离。 火紅的嫁衣襯著肌膚如雪芒炼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天术徊,我揣著相機與錄音本刽,去河邊找鬼。 笑死赠涮,一個胖子當著我的面吹牛子寓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播世囊,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼别瞭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了株憾?” 一聲冷哼從身側(cè)響起蝙寨,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嗤瞎,沒想到半個月后墙歪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡贝奇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年虹菲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掉瞳。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡毕源,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出陕习,到底是詐尸還是另有隱情霎褐,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布该镣,位于F島的核電站冻璃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜省艳,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一娘纷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧跋炕,春花似錦赖晶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至棉圈,卻和暖如春涩堤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背分瘾。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工胎围, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人德召。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓白魂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親上岗。 傳聞我的和親對象是個殘疾皇子福荸,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

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