我目前正在处理一个应用程序,我想在页面上添加一个动画:视图控制器1.在这个视图控制器1中,我添加了一个容器:容器1.当视图时,此容器应该是框架外的将出现,并在用户操作后变为可见。
这就是我在故事板中的视图控制器1的样子:
因为我正在使用自动布局,所以我想在View控制器1出现时使用约束来隐藏容器1。所以,我将容器1的约束Top连接到我的视图控制器1类。
我的第一个问题 - 内部问题
在这个类和方法viewWillLayoutSubviews中,我将此约束的常量更改为容器1的高度:
override func viewWillLayoutSubviews() {
self.container1TopLayout.constant = -self.container1.frame.height
}
我还添加了一个带有动作的按钮:showContainer
func showContainer(){
self.container1TopLayout.constant = 0
UIView.animateWithDuration(1.0, animations: { () -> Void in
self.newCustomServiceContainer.layoutIfNeeded()
})
}
在这种方法中,我将常量更改为零。但观点并未显示。
第二个问题 - 正常工作
如果在我的故事板中,我在用户录制操作按钮之前将容器1位置更改为已经在框架外。当用户粘贴按钮时,容器1被正确显示;我使用了相同的方法showContainer
你能告诉我,我在第一期中做错了什么吗?也许我不应该在viewWillLayoutSubviews中设置常量?
提前谢谢
答案 0 :(得分:0)
就我而言,我这样做:
override func viewDidLoad()
{
prepareContainer()
}
override func viewDidAppear(animated: Bool)
{
showContainer()
}