视图位置重置与 bin 子视图到前面 [自动布局]



使用自动布局,每次我调用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。给出更高的数字将使视图位于前面。

最新更新