Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将TranslatesAutoResizengMaskinToConstraints设置为所有子视图_Ios_Swift_Uitableview_Uikit_Constraints - Fatal编程技术网

Ios 将TranslatesAutoResizengMaskinToConstraints设置为所有子视图

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

有人知道将所有子视图的TranslatesAutoResizengMaskinToConstraints设置为false的含义吗

考虑以下几点:

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在我们的一次谈话中提到了这一讨论,当时我们正试图从我们的观点中清理样板代码。我们讨论了你所说的一切,只是出于与你描述的相同的原因,我没有考虑递归选项。谢谢