【问题标题】:BringSubViewToFront Repositions UIView in AutoLayoutBringSubViewToFront 在 AutoLayout 中重新定位 UIView
【发布时间】:2015-03-15 17:44:28
【问题描述】:

使用 Autolayout,只要调用 bringSubviewToFront,UIView 就会重置。

我尝试使用txtViewPosition 设置原始位置:

override func viewDidLayoutSubviews() {
    if txtViewPosition != nil { // original position
        txtView.frame = txtViewPosition!
    }
}

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

【问题讨论】:

  • “UIView 重置”是什么意思?您是否在某处明确设置框架?如果你使用 AutoLayout,你不应该弄乱frame 属性。您应该更新约束并让布局引擎找出框架。

标签: objective-c swift


【解决方案1】:

由于自动布局,移动视图的方式发生了变化。 不要忘记你的约束。 比直接更新你的框架更好,你应该更新约束。 iOS 将始终将您的视图更新为满足约束条件。 因此,您可以为您的约束之一创建一个 IBOutlet 并在代码中对其进行更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-23
    • 2012-10-08
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    相关资源
    最近更新 更多