容器视图未移出屏幕

Container View Not Moving Off Screen

我有一个容器视图,我希望它最初位于屏幕底部。这应该很容易,但我似乎缺少一些基本的东西。我之前通过将控件移出屏幕左侧来完成类似的操作:

control.center.x -= view.bounds.width

我有一个非常简单的故事板设置:

我的视图控制器如下所示:

class ViewController: UIViewController {

    @IBOutlet var containerView: UIView!

    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        containerView.center.y += view.bounds.height
    }
}

当 运行 时,容器视图就在情节提要中显示的位置,并且不在屏幕外。即使将 containerView 的 center.y 设置为特定值(例如 containerView.center.y = 50)也不会执行任何操作。我可以让它在屏幕上炫耀的唯一方法是在 viewDidAppear 中添加动画:

override func viewDidAppear(animated: Bool) {
   super.viewDidAppear(animated)
   UIView.animateWithDuration(0, animations: {self.containerView.center.y += self.view.bounds.height})
}

但这似乎只是一种解决方法,而不是正确的方法。我已经处理这个问题好几个小时了,阅读博客,阅读其他 Whosebug 问题,但我找不到解决方案。我对容器没有约束,尽管我确实用约束对其进行了测试,但并没有什么不同。感谢任何帮助。

有可能主视图的`layoutSubviews在您重新定位容器视图后被调用,所以它会默认到故事板中指定的位置。

正确的做法是在故事板中设置适当的布局约束,为底部边缘约束创建一个出口并设置此约束的constant 属性。