容器视图不移动屏幕

时间:2015-03-20 22:38:00

标签: ios swift uiview uiviewanimation

我有一个容器视图,我想最初离开屏幕的底部。它应该很容易,但我似乎缺少一些基本的东西。我之前通过以下方式将控件移出屏幕左侧做了类似的事情:

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})
}

但这似乎是一种解决方法,而不是正确的方法。我已经处理了几个小时,阅读博客,阅读其他Stackoverflow问题,但我找不到解决方案。我对容器没有约束,虽然我确实用约束测试它并没有产生任何影响。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

在重新定位容器视图后,可能会调用主视图的`layoutSubviews,因此它将默认为故事板中指定的位置。

正确的方法是在故事板中设置适当的布局约束,为底边约束设置出口并设置此约束的constant属性。