关于约束布局报错提示的问题(本身不影响,视图从视觉上来看也没问题,但感觉就是别扭,想去除)
首先吐槽,iOS的uikit框架确实挺闹心的
然后讲述下如何解决
首先确保自己的约束确实没问题,这点我是可以确定的.个人分析:
应该是 UITableViewHeaderFooterView.contentView 在初始状态下被设定了一个宽度为0的约束
然后网上查询解决方案:
translatesAutoresizingMaskIntoConstraints这个属性设置为false
亲测,设置了自定义的,还是报错:
bottomStackView.translatesAutoresizingMaskIntoConstraints = false
设置了两者:
bottomStackView.translatesAutoresizingMaskIntoConstraints = false
self.contentView.translatesAutoresizingMaskIntoConstraints = false
不报错了,但是直接约束出问题.
于是我在约束设置完成之后,再次开启:
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
//....
}
}