場景:
用xib寫的cell(灰色背景),在cell的contentView上放一個四周邊距12的白色view匣屡,再在view中添加了1個imageView封救、2個label。卻出現(xiàn)了一個莫名其妙的bug捣作,第一次顯示時界面正常誉结,一旦點擊cell,imageView卻被放大了券躁,如圖:
Untitled.gif
于是把cell中所有的約束重寫了3遍惩坑,還是不對,確定約束添加無誤后嘱朽,在cell中重寫layoutSubviews方法旭贬,打印imageView.frame,發(fā)現(xiàn)點擊后imageView.frame有變化搪泳!但是稀轨,我沒有添加cell點擊事件操作,也沒有改變過imageView的約束岸军。
原因:
這個bug找了整整一下午奋刽,晚上突然發(fā)現(xiàn),@property聲明了imageView艰赞,卻沒有連線佣谐!最初以為是我手殘刪掉了這根線,于是刪掉重連了下方妖,運行后bug依然還在狭魂。。党觅。
這才注意到雌澄,imageView線沒連上!杯瞻,有一個警告:
屏幕快照 2016-07-18 下午7.44.58.png
意思是說:@property不會幫我們聲明imageView這個屬性镐牺,因為它是已經(jīng)被聲明過,并且是只讀的魁莉。
果然睬涧,我把@property imageView注釋掉募胃,依然可以在調(diào)用cell.imageView,??畦浓,原來cell中自帶imageView這個屬性:
屏幕快照 2016-07-18 下午8.36.43.png
這個提醒了我痹束,以前遇到過類似問題,代碼中命名盡量不要和系統(tǒng)的命名沖突了宅粥。