我想在Swift中制作一个滑动动画。我希望它从第一个控制器转到第二个控制器,从第一个视图控制器向下滑动。例如:你是POV在第一个VC上,当你按下一个按钮时,第一个VC向下滑动,在它上面是第二个VC 。这是一个看似合理的过渡吗?如果是这样,我将如何实现这一目标?谢谢!
以下是我正在寻找的示例图片:Example
注意:我不希望第二个视图在第一个视图上滑动,我希望它在第一个视图向下滑动时保持在第一个视图的上方(或顶部)。
答案 0 :(得分:0)
要创建此segue,您需要创建一个UIStoryBoardSegue
文件。
在该文件中,输入以下代码:
override func perform() {
var firstVCView = self.sourceViewController.view as UIView!
var secondVCView = self.destinationViewController.view as UIView!
// Get the screen width and height.
let screenWidth = UIScreen.mainScreen().bounds.size.width
let screenHeight = UIScreen.mainScreen().bounds.size.height
// Specify the initial position of the destination view.
secondVCView.frame = CGRectMake(0.0, -screenHeight, screenWidth, screenHeight)
firstVCView.frame = CGRectMake(0.0, 0.0, screenWidth, screenHeight)
// Access the app's key window and insert the destination view above the current (source) one.
let window = UIApplication.sharedApplication().keyWindow
window?.insertSubview(secondVCView, aboveSubview: firstVCView)
// Animate the transition.
UIView.animateWithDuration(0.4, animations: { () -> Void in
firstVCView.frame = CGRectOffset(firstVCView.frame, 0.0, screenHeight)
secondVCView.frame = CGRectOffset(secondVCView.frame, 0.0, screenHeight)
}) { (Finished) -> Void in
self.sourceViewController.presentViewController(self.destinationViewController as! UIViewController,
animated: false,
completion: nil)
}
}
控制单击以创建segue。选择' custom'。然后,在属性检查器中键入segue文件名。你定制的segue很不错!
希望这会有所帮助。