Skip to content

Commit 66cff8a

Browse files
committed
Merge pull request hehonghui#137 from Artwalk/patch-1
Update 自定义ViewController切换效果与动画.md
2 parents 86f374d + c40baef commit 66cff8a

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

issue-2/自定义ViewController切换效果与动画.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class CustomPresentAnimationController: NSObject, UIViewControllerAnimatedTransi
4040
`UIViewControllerAnimatedTransitioning`协议中有两个我们接下来需要添加的方法。将以下方法添加到类中。
4141

4242
```
43-
func transitionDuration(transitionContext: UIViewControllerContextTransitioning) -> NSTimeInterval {
43+
func transitionDuration(transitionContext: UIViewControllerContextTransitioning?) -> NSTimeInterval {
4444
return 2.5
4545
}
4646
@@ -52,7 +52,7 @@ func animateTransition(transitionContext: UIViewControllerContextTransitioning)
5252
let containerView = transitionContext.containerView()
5353
let bounds = UIScreen.mainScreen().bounds
5454
toViewController.view.frame = CGRectOffset(finalFrameForVC, 0, bounds.size.height)
55-
containerView.addSubview(toViewController.view)
55+
containerView?.addSubview(toViewController.view)
5656
5757
UIView.animateWithDuration(transitionDuration(transitionContext), delay: 0.0, usingSpringWithDamping: 0.5, initialSpringVelocity: 0.0, options: .CurveLinear, animations: {
5858
fromViewController.view.alpha = 0.5
@@ -104,7 +104,7 @@ override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
104104
将下列`UIViewControllerTransitioningDelegate`方法添加到类中。这一步会返回我们的自定义animation controller实例。
105105

106106
```
107-
func animationControllerForPresentedController(presented: UIViewController, presentingController presenting: UIViewController, sourceController source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
107+
func animationControllerForPresentedController(presented: UIViewController, presentingController presenting: UIViewController, sourceController source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
108108
return customPresentAnimationController
109109
}
110110
```
@@ -146,7 +146,7 @@ class CustomDismissAnimationController: NSObject, UIViewControllerAnimatedTransi
146146
将以下代码添加到类中。
147147

148148
```
149-
func transitionDuration(transitionContext: UIViewControllerContextTransitioning) -> NSTimeInterval {
149+
func transitionDuration(transitionContext: UIViewControllerContextTransitioning?) -> NSTimeInterval {
150150
return 2
151151
}
152152
@@ -157,8 +157,8 @@ func animateTransition(transitionContext: UIViewControllerContextTransitioning)
157157
let containerView = transitionContext.containerView()
158158
toViewController.view.frame = finalFrameForVC
159159
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)
162162
163163
UIView.animateWithDuration(transitionDuration(transitionContext), animations: {
164164
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()
183183
添加以下功能至类中。
184184

185185
```
186-
func animationControllerForDismissedController(dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
186+
func animationControllerForDismissedController(dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
187187
return customDismissAnimationController
188188
}
189189
```
@@ -208,12 +208,12 @@ func animateTransition(transitionContext: UIViewControllerContextTransitioning)
208208
let containerView = transitionContext.containerView()
209209
toViewController.view.frame = finalFrameForVC
210210
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)
213213
214214
let snapshotView = fromViewController.view.snapshotViewAfterScreenUpdates(false)
215215
snapshotView.frame = fromViewController.view.frame
216-
containerView.addSubview(snapshotView)
216+
containerView?.addSubview(snapshotView)
217217
218218
fromViewController.view.removeFromSuperview()
219219
@@ -255,7 +255,7 @@ class CustomNavigationAnimationController: NSObject, UIViewControllerAnimatedTra
255255
```
256256
var reverse: Bool = false
257257
258-
func transitionDuration(transitionContext: UIViewControllerContextTransitioning) -> NSTimeInterval {
258+
func transitionDuration(transitionContext: UIViewControllerContextTransitioning?) -> NSTimeInterval {
259259
return 1.5
260260
}
261261
@@ -278,15 +278,15 @@ func animateTransition(transitionContext: UIViewControllerContextTransitioning)
278278
279279
containerView.transform = CGAffineTransformMakeTranslation(direction * containerView.frame.size.width / 2.0, 0)
280280
toView.layer.transform = viewToTransform
281-
containerView.addSubview(toView)
281+
containerView?.addSubview(toView)
282282
283283
UIView.animateWithDuration(transitionDuration(transitionContext), animations: {
284284
containerView.transform = CGAffineTransformMakeTranslation(-direction * containerView.frame.size.width / 2.0, 0)
285285
fromView.layer.transform = viewFromTransform
286286
toView.layer.transform = CATransform3DIdentity
287287
}, completion: {
288288
finished in
289-
containerView.transform = CGAffineTransformIdentity
289+
containerView?.transform = CGAffineTransformIdentity
290290
fromView.layer.transform = CATransform3DIdentity
291291
toView.layer.transform = CATransform3DIdentity
292292
fromView.layer.anchorPoint = CGPointMake(0.5, 0.5)
@@ -330,7 +330,7 @@ navigationController?.delegate = self
330330
然后将以下代码添加到类中。
331331

332332
```
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? {
334334
customNavigationAnimationController.reverse = operation == .Pop
335335
return customNavigationAnimationController
336336
}
@@ -431,7 +431,7 @@ if operation == .Push {
431431
然后添加以下代码到类中。
432432

433433
```
434-
func navigationController(navigationController: UINavigationController, interactionControllerForAnimationController animationController: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
434+
func navigationController(navigationController: UINavigationController, interactionControllerForAnimationController animationController: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
435435
return customInteractionController.transitionInProgress ? customInteractionController : nil
436436
}
437437
```

0 commit comments

Comments
 (0)