cell的默认高度导致masonry布局约束冲突的解决办法

最近工程升级到支持iOS8及以上,cell高度可以使用自动计算高度了

//iOS8以后自动计算cell高度的方法,同时cell上各个控件垂直方向上的约束要完整
self.tableView.estimatedRowHeight = 100;
self.tableView.rowHeight = UITableViewAutomaticDimension;

第一个tableView上没啥问题,第二个看起来也没啥问题,布局显示很正常;but真机调试时忽然发现控制台上打印了一些约束冲突,查看只有第二个才出现了约束冲突。what? 于是查找观察2个tableViewCell布局上有什么区别,第一个简单一些,但第二个约束也不应该有什么问题啊,对比控制台上打印的信息查找冲突原因,发现有一项tableViewCell.contentView.height = 44 ,考虑可能是这个cell默认高度导致的。
然后谷歌上收索一下,发现确实有不少开发者遇到了这个问题,按他们的解决办法,

//设置cell自适应
self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

添上之后运行,结果发现然并卵,还是报冲突。不死心继续在谷歌上查找,发现大部分都是上面的解决办法,偶然看到一条设置优先级的信息,果断试验一下,把报冲突的那个约束的优先级设置高一些(默认的约束优先级是750),再次运行发现果然不在冲突了。
个人感觉是设置了一个更高的优先级后,cell的默认高度因优先级低的问题会被抵消掉,从而冲突消失了。

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

推荐阅读更多精彩内容