使用bringSubviewToFront [AutoLayout]查看位置重置

时间:2015-03-12 23:57:24

标签: objective-c swift

使用Autolayout,每当我调用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!

看起来视图是正确的位置,但它仍然显示在其原始位置(在AutoLayout中设置)。

更新(UIView仍然快照)

override func viewDidLayoutSubviews() {
    if txtViewPosition != nil {
        println("txt position is \(txtViewPosition)")
        txtView.frame = txtViewPosition!
    }
}

1 个答案:

答案 0 :(得分:2)

如果您需要对布局进行更精细的颗粒控制,则需要在-layoutSubviews-viewDidLayoutSubviews中进行更改。