從去年8月份正式升級(jí)xcode 8.0 開(kāi)始,就發(fā)現(xiàn)一個(gè)問(wèn)題
將原仿寫(xiě)的新浪微博項(xiàng)目在xcode 8下運(yùn)行,會(huì)出現(xiàn)cell重疊的約束沖突問(wèn)題,但舊項(xiàng)目在xcode 7.3.1下跑完全沒(méi)有問(wèn)題,也不會(huì)有任何約束沖突的提示
詢問(wèn)了身邊的朋友,一直說(shuō)沒(méi)遇到,也可能是他們最近沒(méi)有寫(xiě)過(guò)這塊,中途忙活忘了,前陣子仿寫(xiě)了個(gè)項(xiàng)目,寫(xiě)到自動(dòng)行高的時(shí)候又發(fā)現(xiàn)了這個(gè)問(wèn)題,如圖:
bs.gif
中途一段時(shí)間忙別的事情,再回來(lái)處理這個(gè)問(wèn)題的時(shí)候跑起來(lái)發(fā)現(xiàn)更嚴(yán)重了,完全看不出每一個(gè)Cell的區(qū)域了,于是在往上搜了一下
-
以前這種自動(dòng)行高的實(shí)現(xiàn)方式:
-
最底部控件
設(shè)置相對(duì)于contentView的左右上
及自身高度
約束 -
自定義cell的contentView
設(shè)置相對(duì)于self的上左右
及相對(duì)于內(nèi)部最底部控件
的底部約束
-
-
但是在xocde8&ios10下:
-
最底部控件
設(shè)置相對(duì)于contentView的左右上
及自身高度
約束基礎(chǔ)上+相對(duì)于contentView
的底部約束 -
自定義cell的contentView
設(shè)置相對(duì)于self的上下左右
四個(gè)方向約束
-
[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 約束問(wèn)題 (此控件高度已經(jīng)在自定義視圖中設(shè)置)
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 約束問(wèn)題
make.bottom.mas_equalTo(self);
//make.bottom.mas_equalTo(self.topic_bottom_toolbar).mas_offset(kMargin);
}];
修復(fù)后:
bsr.gif
隨著xcode和ios的升級(jí),約束設(shè)置要求更加的嚴(yán)謹(jǐn)了