在View Swift中创建滑动动画

时间:2016-07-04 04:54:06

标签: ios swift uiview

我想在Swift中制作一个滑动动画。我希望它从第一个控制器转到第二个控制器,从第一个视图控制器向下滑动。例如:你是POV在第一个VC上,当你按下一个按钮时,第一个VC向下滑动,在它上面是第二个VC 。这是一个看似合理的过渡吗?如果是这样,我将如何实现这一目标?谢谢!

以下是我正在寻找的示例图片:Example

注意:我不希望第二个视图在第一个视图上滑动,我希望它在第一个视图向下滑动时保持在第一个视图的上方(或顶部)。

1 个答案:

答案 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很不错!

希望这会有所帮助。