Ios 将TranslatesAutoResizengMaskinToConstraints设置为所有子视图
有人知道将所有子视图的TranslatesAutoResizengMaskinToConstraints设置为false的含义吗 考虑以下几点:Ios 将TranslatesAutoResizengMaskinToConstraints设置为所有子视图,ios,swift,uitableview,uikit,constraints,Ios,Swift,Uitableview,Uikit,Constraints,有人知道将所有子视图的TranslatesAutoResizengMaskinToConstraints设置为false的含义吗 考虑以下几点: extension UIView { public func setAutoresizingMaskIntoConstraintsForAllSubviews() { for v in self.subviews { v.translatesAutoresizingMaskIntoConstraints
extension UIView {
public func setAutoresizingMaskIntoConstraintsForAllSubviews() {
for v in self.subviews {
v.translatesAutoresizingMaskIntoConstraints = false
}
}
}
...
let cell = UITableViewCell()
cell.setAutoresizingMaskIntoConstraintsForAllSubviews() //or
cell.contentView.setAutoresizingMaskIntoConstraintsForAllSubviews()
根据我的测试,一切正常。我没有看到任何约束与任何UIKit组件冲突
根据苹果的文档:
默认情况下,对于您选择的任何视图,该属性都设置为true
以编程方式创建。如果在Interface Builder中添加视图,则
系统自动将此属性设置为false
虽然这可能没有什么内在的错误 首先,这不会影响子视图的子视图,除非将其设置为递归 第二,如果您将其设置为递归,那么最终将设置滚动视图滚动指示器、按钮背景图像视图等的属性 第三,既然这样做是因为以编程方式创建视图,为什么不在代码中显式设置值
而且,一般来说,因为你不确定发生了什么事情而盲目地抛出一段“一概而论”的代码是一个非常糟糕的主意。Don在我们的一次谈话中提到了这一讨论,当时我们正试图从我们的观点中清理样板代码。我们讨论了你所说的一切,只是出于与你描述的相同的原因,我没有考虑递归选项。谢谢