iOS cell中图片在xib连线命名imageView冲突导致的bug

场景:

用xib写的cell(灰色背景),在cell的contentView上放一个四周边距12的白色view,再在view中添加了1个imageView、2个label。却出现了一个莫名其妙的bug,第一次显示时界面正常,一旦点击cell,imageView却被放大了,如图:

Untitled.gif

于是把cell中所有的约束重写了3遍,还是不对,确定约束添加无误后,在cell中重写layoutSubviews方法,打印imageView.frame,发现点击后imageView.frame有变化!但是,我没有添加cell点击事件操作,也没有改变过imageView的约束。

原因:

这个bug找了整整一下午,晚上突然发现,@property声明了imageView,却没有连线!最初以为是我手残删掉了这根线,于是删掉重连了下,运行后bug依然还在。。。

这才注意到,imageView线没连上!,有一个警告:

屏幕快照 2016-07-18 下午7.44.58.png

意思是说:@property不会帮我们声明imageView这个属性,因为它是已经被声明过,并且是只读的。

果然,我把@property imageView注释掉,依然可以在调用cell.imageView,😂,原来cell中自带imageView这个属性:

屏幕快照 2016-07-18 下午8.36.43.png

这个提醒了我,以前遇到过类似问题,代码中命名尽量不要和系统的命名冲突了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容