最近工程升級到支持iOS8及以上娇澎,cell高度可以使用自動計算高度了
//iOS8以后自動計算cell高度的方法烙如,同時cell上各個控件垂直方向上的約束要完整
self.tableView.estimatedRowHeight = 100;
self.tableView.rowHeight = UITableViewAutomaticDimension;
第一個tableView上沒啥問題,第二個看起來也沒啥問題远荠,布局顯示很正常;but真機調(diào)試時忽然發(fā)現(xiàn)控制臺上打印了一些約束沖突失息,查看只有第二個才出現(xiàn)了約束沖突譬淳。what? 于是查找觀察2個tableViewCell布局上有什么區(qū)別,第一個簡單一些盹兢,但第二個約束也不應該有什么問題啊邻梆,對比控制臺上打印的信息查找沖突原因,發(fā)現(xiàn)有一項tableViewCell.contentView.height = 44 绎秒,考慮可能是這個cell默認高度導致的浦妄。
然后谷歌上收索一下,發(fā)現(xiàn)確實有不少開發(fā)者遇到了這個問題见芹,按他們的解決辦法剂娄,
//設置cell自適應
self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
添上之后運行,結果發(fā)現(xiàn)然并卵玄呛,還是報沖突阅懦。不死心繼續(xù)在谷歌上查找,發(fā)現(xiàn)大部分都是上面的解決辦法徘铝,偶然看到一條設置優(yōu)先級的信息耳胎,果斷試驗一下惯吕,把報沖突的那個約束的優(yōu)先級設置高一些(默認的約束優(yōu)先級是750),再次運行發(fā)現(xiàn)果然不在沖突了怕午。
個人感覺是設置了一個更高的優(yōu)先級后混埠,cell的默認高度因優(yōu)先級低的問題會被抵消掉,從而沖突消失了诗轻。