Ios 打印时自动布局框架x位置不正确
我有UIView和子视图,其中我设置了如下自动布局: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
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)
请添加您的解决方案,作为未来有类似问题的人的答案。