Mar*_*tes 2 constraints uitableview uikit ios swift
有人知道将所有子视图的translatesAutoresizingMaskIntoConstraints 设置为 false 的含义吗?
考虑以下:
extension UIView {
public func setAutoresizingMaskIntoConstraintsForAllSubviews() {
for v in self.subviews {
v.translatesAutoresizingMaskIntoConstraints = false
}
}
}
...
let cell = UITableViewCell()
cell.setAutoresizingMaskIntoConstraintsForAllSubviews() //or
cell.contentView.setAutoresizingMaskIntoConstraintsForAllSubviews()
Run Code Online (Sandbox Code Playgroud)
根据我的测试,一切正常。我没有看到与任何 UIKit 组件有任何约束冲突。
根据苹果的文档:
默认情况下,对于您以编程方式创建的任何视图,该属性都设置为 true。如果您在 Interface Builder 中添加视图,系统会自动将此属性设置为 false。
https://developer.apple.com/reference/uikit/uiview/1622572-translatesautoresizingmaskintoco
虽然这可能没有什么本质上的错误......
首先,这不会影响子视图的子视图,除非你让它递归。
其次,如果你确实让它递归,你最终将设置诸如滚动视图滚动指示器、按钮背景图像视图等的属性。
第三,既然您这样做是因为您正在以编程方式创建视图,那么为什么不在该代码中显式设置该值呢?
而且,一般来说,因为不确定发生了什么而盲目地向某事物扔出一段“包罗万象”的代码是一个非常糟糕的主意。