我正在开发一个应用程序,我使用自定义segues在两个UIViewController
之间导航。
第二个UIViewController
的segue就好了。但是当触发展开segue时,触发它的按钮会立即消失,同时慢慢为其他动画制作动画。
按钮是通过Storyboard设置的,然后我从它拖动到UIViewController
的退出。一个展开的segue出现了,我设置了所有必要的文件。
我将自定义类分配给Unwind segue,现在覆盖perform()
- 方法,如下所示:
override func perform() {
let settingsVCView = self.sourceViewController.view
let startVCView = self.destinationViewController.view
let screenHeight = UIScreen.mainScreen().bounds.size.height
let screenWidth = UIScreen.mainScreen().bounds.size.width
let window = UIApplication.sharedApplication().keyWindow
window?.insertSubview(startVCView, aboveSubview: settingsVCView)
UIView.animateWithDuration(0.8, delay: 0, options: .CurveEaseInOut, animations: { () -> Void in
settingsVCView.frame = CGRectMake(0, -(screenHeight), screenWidth, screenHeight)
startVCView.frame = CGRectMake(0, 0, screenWidth, screenHeight)
}) { (finished) -> Void in
self.sourceViewController.dismissViewControllerAnimated(false, completion: nil)
}
}
一切都已设置好,动画就像你在gif中看到的那样完成。有些人会说动画现在可以正常工作,但是那个按钮的早期消失真的让我烦恼。我试过了:
dismissViewControllerAnimated:
功能我没有找到任何解决方案。
答案 0 :(得分:0)
我终于通过首先清除该Button的所有布局约束来解决问题。然后我再次点击它并且它没有消失,所以它与约束有关。
This is what the constraint should be set like.
错误是将按钮的顶部约束固定到顶部布局指南而不是视图顶部。更改此锚点解决了我的问题,我的Button停止隐藏:)