从去年8月份正式升级xcode 8.0 开始,就发现一个问题
将原仿写的新浪微博项目在xcode 8下运行,会出现cell重叠的约束冲突问题,但旧项目在xcode 7.3.1下跑完全没有问题,也不会有任何约束冲突的提示
询问了身边的朋友,一直说没遇到,也可能是他们最近没有写过这块,中途忙活忘了,前阵子仿写了个项目,写到自动行高的时候又发现了这个问题,如图:

中途一段时间忙别的事情,再回来处理这个问题的时候跑起来发现更严重了,完全看不出每一个Cell的区域了,于是在往上搜了一下
-
以前这种自动行高的实现方式:
-
最底部控件
设置相对于contentView的左右上
及自身高度
约束 -
自定义cell的contentView
设置相对于self的上左右
及相对于内部最底部控件
的底部约束
-
-
但是在xocde8&ios10下:
-
最底部控件
设置相对于contentView的左右上
及自身高度
约束基础上+相对于contentView
的底部约束 -
自定义cell的contentView
设置相对于self的上下左右
四个方向约束
-
[self.topic_bottom_toolbar mas_makeConstraints:^(MASConstraintMaker *make) {
self.topic_bottom_toolbar_top_constraint = make.top.mas_equalTo(self.topic_comment_view.mas_bottom);
make.left.right.mas_equalTo(self.contentView);
// xocde 8 + ios 10 约束问题 (此控件高度已经在自定义视图中设置)
make.bottom.mas_equalTo(self.contentView).mas_offset(-kMargin);
}];
[self.contentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.left.right.mas_equalTo(self);
// xocde 8 + ios 10 约束问题
make.bottom.mas_equalTo(self);
//make.bottom.mas_equalTo(self.topic_bottom_toolbar).mas_offset(kMargin);
}];
修复后:

随着xcode和ios的升级,约束设置要求更加的严谨了
网友评论