我有一个容器视图,我想最初离开屏幕的底部。它应该很容易,但我似乎缺少一些基本的东西。我之前通过以下方式将控件移出屏幕左侧做了类似的事情:
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问题,但我找不到解决方案。我对容器没有约束,虽然我确实用约束测试它并没有产生任何影响。任何帮助表示赞赏。
答案 0 :(得分:0)
在重新定位容器视图后,可能会调用主视图的`layoutSubviews,因此它将默认为故事板中指定的位置。
正确的方法是在故事板中设置适当的布局约束,为底边约束设置出口并设置此约束的constant
属性。