场景:
用xib写的cell(灰色背景),在cell的contentView上放一个四周边距12的白色view,再在view中添加了1个imageView、2个label。却出现了一个莫名其妙的bug,第一次显示时界面正常,一旦点击cell,imageView却被放大了,如图:
于是把cell中所有的约束重写了3遍,还是不对,确定约束添加无误后,在cell中重写layoutSubviews方法,打印imageView.frame,发现点击后imageView.frame有变化!但是,我没有添加cell点击事件操作,也没有改变过imageView的约束。
原因:
这个bug找了整整一下午,晚上突然发现,@property声明了imageView,却没有连线!最初以为是我手残删掉了这根线,于是删掉重连了下,运行后bug依然还在。。。
这才注意到,imageView线没连上!,有一个警告:
意思是说:@property不会帮我们声明imageView这个属性,因为它是已经被声明过,并且是只读的。
果然,我把@property imageView注释掉,依然可以在调用cell.imageView,😂,原来cell中自带imageView这个属性:
这个提醒了我,以前遇到过类似问题,代码中命名尽量不要和系统的命名冲突了。