Ios 打印时自动布局框架x位置不正确

Ios 打印时自动布局框架x位置不正确,ios,swift,autolayout,ios-autolayout,Ios,Swift,Autolayout,Ios Autolayout,我有UIView和子视图,其中我设置了如下自动布局: label1Container.topAnchor.constraint(equalTo: topAnchor), label1Container.bottomAnchor.constraint(equalTo: bottomAnchor), label1Container.leftAnchor.constraint(equalTo: leftAnchor), label2Container.topAnchor

我有UIView和子视图,其中我设置了如下自动布局:

    label1Container.topAnchor.constraint(equalTo: topAnchor),
    label1Container.bottomAnchor.constraint(equalTo: bottomAnchor),
    label1Container.leftAnchor.constraint(equalTo: leftAnchor),
    label2Container.topAnchor.constraint(equalTo: topAnchor),
    label2Container.bottomAnchor.constraint(equalTo: bottomAnchor),
    label2Container.rightAnchor.constraint(equalTo: rightAnchor),
    label2Container.leftAnchor.constraint(equalTo: label1Container.rightAnchor),
    label1Container.widthAnchor.constraint(equalTo: label2Container.widthAnchor),
然后我尝试获取Label2容器框架:

override func layoutSubviews() {
            super.layoutIfNeeded()
            print("c1: \(label1Container.frame), c2: \(label2Container.frame)")
结果是:

c1:(0.0,0.0,0.0,128.0),c2:(0.0,0.0,0.0,128.0)

但在屏幕上它呈现得很好(紫色)。

如何获得正确的帧

编辑: 好吧,傻我,我发现检查帧的正确位置是draw(frame:CGRect)

试试看

override func layoutSubviews() {
   super.layoutSubviews()
   print("c1: \(label1Container.frame), c2: \(label2Container.frame)") 
}  

这是
super.layoutSubviews()
而不是
super.layoutfneed()

好吧,愚蠢的我,我发现检查框架的正确位置是
draw(frame:CGRect)

请添加您的解决方案,作为未来有类似问题的人的答案。