【发布时间】:2016-12-26 06:13:47
【问题描述】:
我在使用 swift 3 和 iOS 8 创建自定义 segue 时遇到问题。我试图通过从一个 VC 淡入到黑屏然后从黑色淡入到我的第二个 VC 来在视图控制器之间转换。我尝试通过使用下面的代码创建自定义 segue 来实现 segue,但它没有像我希望的那样工作。我的目标是在黑色方块从 0.5 alpha 变为 1.0 alpha 时执行动画,然后呈现我的第二个视图控制器,然后将黑色方块从 1.0 alpha 设置回 0.5 alpha 并删除它。现在,它正确地执行了第一部分,但是在动画完成后,您可以在第二个 VC 弹出之前短暂看到第一个 VC。我应该如何更改我的代码以使过渡更平滑并获得所需的结果?
override func perform() {
let sourceVC = self.source
let destinationVC = self.destination
let square = UIView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height))
square.alpha = 0.5
square.backgroundColor = UIColor.black
sourceVC.view.addSubview(square)
UIView.animate(withDuration: 0.2, animations: {
square.alpha = 1.0
})
UIView.animate(withDuration: 0.2, delay: 0.2, animations: {
square.alpha = 0.5
}) { (finished) in
sourceVC.present(destinationVC, animated: false, completion: nil)
}
}
【问题讨论】:
标签: ios swift animation uiviewcontroller segue