使用自动布局,每次我调用bringSubviewToFront
时,UIView 都会重置。
我尝试使用txtViewPosition
设置原始位置:
txtViewPosition = CGRect(x: txtView.frame.origin.x, y: txtView.frame.origin.y, width: txtView.frame.size.width, height: txtView.frame.size.height)
containerView.bringSubviewToFront(txtView)
txtView.frame = txtViewPosition!
看起来视图是正确的位置,但它仍然显示在其原始位置(在自动布局中设置)。
更新(UIView 仍然会回弹)
override func viewDidLayoutSubviews() {
if txtViewPosition != nil {
println("txt position is (txtViewPosition)")
txtView.frame = txtViewPosition!
}
}
如果您需要对布局进行更精细的控制,则需要在-layoutSubviews
或-viewDidLayoutSubviews
中进行更改。
view.bringSubviewToFront(txtView) 和 view.sendSubviewToBack(txtView) 都重置视图位置,如果对视图位置而不是约束进行动画处理。你可以改用txtView.layer.zPosition。默认值为 0。给出更高的数字将使视图位于前面。