一、【ios 8 致命bug】
描述:做了一个类似动态的列表,Cell的高度需要自适应。应用到了masory进行相对布局。UI有一个小小的要求,就是Cell左右需要margin 10px,当时为了方便就在layoutsubview里对Cell的ContentView.frame 进行调整,代码如下:
-(void)layoutSubviews
{
[super layoutSubviews];
CGRect rect = self.contentView.frame;
rect.origin.x = 5;
rect.size.width -=10;
self.contentView.frame = rect;
}
就是这部分不起眼的代码,导致了一个致命的bug。
分析:利用masory进行布局没问题,layoutsubview 里进行ContentView.frame 改变也没问题,但是两种情况掺杂在一起用,一般也没问题。但是只要出现在ios 8 系统就会导致死循环调用,最终卡死。应用是IOS 8 上autolayout 与layoutSubviews 循环调用,导致内存10m递增,最后卡死。
最后把layoutsubview中改变ContentView.frame的代码去掉,就解决这个问题了。😢