@@ -40,7 +40,7 @@ class CustomPresentAnimationController: NSObject, UIViewControllerAnimatedTransi
40
40
` UIViewControllerAnimatedTransitioning ` 协议中有两个我们接下来需要添加的方法。将以下方法添加到类中。
41
41
42
42
```
43
- func transitionDuration(transitionContext: UIViewControllerContextTransitioning) -> NSTimeInterval {
43
+ func transitionDuration(transitionContext: UIViewControllerContextTransitioning? ) -> NSTimeInterval {
44
44
return 2.5
45
45
}
46
46
@@ -52,7 +52,7 @@ func animateTransition(transitionContext: UIViewControllerContextTransitioning)
52
52
let containerView = transitionContext.containerView()
53
53
let bounds = UIScreen.mainScreen().bounds
54
54
toViewController.view.frame = CGRectOffset(finalFrameForVC, 0, bounds.size.height)
55
- containerView.addSubview(toViewController.view)
55
+ containerView? .addSubview(toViewController.view)
56
56
57
57
UIView.animateWithDuration(transitionDuration(transitionContext), delay: 0.0, usingSpringWithDamping: 0.5, initialSpringVelocity: 0.0, options: .CurveLinear, animations: {
58
58
fromViewController.view.alpha = 0.5
@@ -104,7 +104,7 @@ override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
104
104
将下列` UIViewControllerTransitioningDelegate ` 方法添加到类中。这一步会返回我们的自定义animation controller实例。
105
105
106
106
```
107
- func animationControllerForPresentedController(presented: UIViewController, presentingController presenting: UIViewController, sourceController source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
107
+ func animationControllerForPresentedController(presented: UIViewController, presentingController presenting: UIViewController, sourceController source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
108
108
return customPresentAnimationController
109
109
}
110
110
```
@@ -146,7 +146,7 @@ class CustomDismissAnimationController: NSObject, UIViewControllerAnimatedTransi
146
146
将以下代码添加到类中。
147
147
148
148
```
149
- func transitionDuration(transitionContext: UIViewControllerContextTransitioning) -> NSTimeInterval {
149
+ func transitionDuration(transitionContext: UIViewControllerContextTransitioning? ) -> NSTimeInterval {
150
150
return 2
151
151
}
152
152
@@ -157,8 +157,8 @@ func animateTransition(transitionContext: UIViewControllerContextTransitioning)
157
157
let containerView = transitionContext.containerView()
158
158
toViewController.view.frame = finalFrameForVC
159
159
toViewController.view.alpha = 0.5
160
- containerView.addSubview(toViewController.view)
161
- containerView.sendSubviewToBack(toViewController.view)
160
+ containerView? .addSubview(toViewController.view)
161
+ containerView? .sendSubviewToBack(toViewController.view)
162
162
163
163
UIView.animateWithDuration(transitionDuration(transitionContext), animations: {
164
164
fromViewController.view.frame = CGRectInset(fromViewController.view.frame, fromViewController.view.frame.size.width / 2, fromViewController.view.frame.size.height / 2)
@@ -183,7 +183,7 @@ let customDismissAnimationController = CustomDismissAnimationController()
183
183
添加以下功能至类中。
184
184
185
185
```
186
- func animationControllerForDismissedController(dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
186
+ func animationControllerForDismissedController(dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
187
187
return customDismissAnimationController
188
188
}
189
189
```
@@ -208,12 +208,12 @@ func animateTransition(transitionContext: UIViewControllerContextTransitioning)
208
208
let containerView = transitionContext.containerView()
209
209
toViewController.view.frame = finalFrameForVC
210
210
toViewController.view.alpha = 0.5
211
- containerView.addSubview(toViewController.view)
212
- containerView.sendSubviewToBack(toViewController.view)
211
+ containerView? .addSubview(toViewController.view)
212
+ containerView? .sendSubviewToBack(toViewController.view)
213
213
214
214
let snapshotView = fromViewController.view.snapshotViewAfterScreenUpdates(false)
215
215
snapshotView.frame = fromViewController.view.frame
216
- containerView.addSubview(snapshotView)
216
+ containerView? .addSubview(snapshotView)
217
217
218
218
fromViewController.view.removeFromSuperview()
219
219
@@ -255,7 +255,7 @@ class CustomNavigationAnimationController: NSObject, UIViewControllerAnimatedTra
255
255
```
256
256
var reverse: Bool = false
257
257
258
- func transitionDuration(transitionContext: UIViewControllerContextTransitioning) -> NSTimeInterval {
258
+ func transitionDuration(transitionContext: UIViewControllerContextTransitioning? ) -> NSTimeInterval {
259
259
return 1.5
260
260
}
261
261
@@ -278,15 +278,15 @@ func animateTransition(transitionContext: UIViewControllerContextTransitioning)
278
278
279
279
containerView.transform = CGAffineTransformMakeTranslation(direction * containerView.frame.size.width / 2.0, 0)
280
280
toView.layer.transform = viewToTransform
281
- containerView.addSubview(toView)
281
+ containerView? .addSubview(toView)
282
282
283
283
UIView.animateWithDuration(transitionDuration(transitionContext), animations: {
284
284
containerView.transform = CGAffineTransformMakeTranslation(-direction * containerView.frame.size.width / 2.0, 0)
285
285
fromView.layer.transform = viewFromTransform
286
286
toView.layer.transform = CATransform3DIdentity
287
287
}, completion: {
288
288
finished in
289
- containerView.transform = CGAffineTransformIdentity
289
+ containerView? .transform = CGAffineTransformIdentity
290
290
fromView.layer.transform = CATransform3DIdentity
291
291
toView.layer.transform = CATransform3DIdentity
292
292
fromView.layer.anchorPoint = CGPointMake(0.5, 0.5)
@@ -330,7 +330,7 @@ navigationController?.delegate = self
330
330
然后将以下代码添加到类中。
331
331
332
332
```
333
- func navigationController(navigationController: UINavigationController, animationControllerForOperation operation: UINavigationControllerOperation, fromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
333
+ func navigationController(navigationController: UINavigationController, animationControllerForOperation operation: UINavigationControllerOperation, fromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
334
334
customNavigationAnimationController.reverse = operation == .Pop
335
335
return customNavigationAnimationController
336
336
}
@@ -431,7 +431,7 @@ if operation == .Push {
431
431
然后添加以下代码到类中。
432
432
433
433
```
434
- func navigationController(navigationController: UINavigationController, interactionControllerForAnimationController animationController: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
434
+ func navigationController(navigationController: UINavigationController, interactionControllerForAnimationController animationController: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
435
435
return customInteractionController.transitionInProgress ? customInteractionController : nil
436
436
}
437
437
```
0 commit comments