在自动布局下,我通过设置center.x
来更改视图的位置,然后调用layoutIfNeeded
。我期望的是视图将回到之前的位置,它没有任何子视图,但没有至少一个子视图。
我做了一个简单的演示来展示问题:
@IBAction func move(sender: AnyObject) {
singleView.center.x += 20
viewWithSubview.center.x += 20
}
@IBAction func back(sender: AnyObject) {
singleView.layoutIfNeeded()
viewWithSubview.layoutIfNeeded()
}
原始场景:
调用move
后:
调用back
后:
我知道setNeedsLayout
可以回复第二个视图,但这不是我想要的答案。我想知道为什么会发生如上所述。