?? ? ? ? 關(guān)于約束布局報錯提示的問題(本身不影響,視圖從視覺上來看也沒問題,但感覺就是別扭,想去除)
?? ? ? ? 首先吐槽,iOS的uikit框架確實挺鬧心的
?? ? ? ? 然后講述下如何解決
?? ? ? ? 首先確保自己的約束確實沒問題,這點我是可以確定的.個人分析:
?? ? ? ? 應(yīng)該是 UITableViewHeaderFooterView.contentView 在初始狀態(tài)下被設(shè)定了一個寬度為0的約束
?? ? ? ? 然后網(wǎng)上查詢解決方案:
?? ? ? ? translatesAutoresizingMaskIntoConstraints這個屬性設(shè)置為false
?? ? ? ? 親測,設(shè)置了自定義的,還是報錯:
?? ? ? ? bottomStackView.translatesAutoresizingMaskIntoConstraints = false
?? ? ? ? 設(shè)置了兩者:
?? ? ? ? bottomStackView.translatesAutoresizingMaskIntoConstraints = false
?? ? ? ? self.contentView.translatesAutoresizingMaskIntoConstraints = false
?? ? ? ? 不報錯了,但是直接約束出問題.
?? ? ? ? 于是我在約束設(shè)置完成之后,再次開啟:
?? ? ? ? self.contentView.translatesAutoresizingMaskIntoConstraints = true
?? ? ? ? 依然保持報錯提示
?? ? ? ? 然后我想來想去,也只能這樣解決了:
? ? ? ? ?
?? ? ? ? var setupSubViewLayoutTasks = [(() -> Void)]()
?? ? ? ? override func layoutSubviews() {
?? ? ? ? ? ? super.layoutSubviews()
?? ? ? ? ? ? while setupSubViewLayoutTasks.count > 0 {
?? ? ? ? ? ? ? ? setupSubViewLayoutTasks.popLast()!()
?? ? ? ? ? ? }
?? ? ? ? }
?? ? ? ? 需要添加約束的地方這么寫
?? ? ? ? setupSubViewLayoutTasks.append {
?? ? ? ? ? ? bottomStackView.snp.makeConstraints { make in
?? ? ? ? ? ? ? ? //....
?? ? ? ? ? ? }
?? ? ? ? }