iOS开发 ----- 新的转场动画
2015-11-04 22:50
609 查看
新写的一个动画(其实是别人的)
这里有自定义转场动画的解释这里是Demo
这里主要用到了layer的mask属性,用来实现这种扩散的效果
-(void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext { _transitionContext = transitionContext; UIView * containerView = [transitionContext containerView]; UIViewController * fromeViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey]; UIViewController * toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey]; [containerView addSubview:toViewController.view]; UIBezierPath * circleInit = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(335, 64, 44, 44)]; CGPoint extremePoint = CGPointMake(335+22 - 0, 64+22 - CGRectGetHeight(toViewController.view.bounds)); CGFloat radius = sqrt((extremePoint.x*extremePoint.x) + (extremePoint.y*extremePoint.y)); //这个可以自己写一下,用不同的曲线可以起到不同的作用 UIBezierPath * circleFinal = [UIBezierPath bezierPathWithOvalInRect:CGRectInset(CGRectMake(335, 64, 44, 44), -radius, -radius)]; NSLog(@"RECk : %@",NSStringFromCGRect(CGRectInset(CGRectMake(335, 64, 44, 44), -radius, -radius))); CAShapeLayer * masklayer = [CAShapeLayer layer]; masklayer.path = circleFinal.CGPath; toViewController.view.layer.mask = masklayer; CABasicAnimation * animation = [CABasicAnimation animation]; animation.keyPath = @"path"; animation.fromValue = (__bridge id _Nullable)(circleInit.CGPath); animation.toValue = (__bridge id _Nullable)(circleFinal.CGPath); animation.duration = 0.3; animation.delegate = self; [masklayer addAnimation:animation forKey:@"path"]; }
相关文章推荐
- iOS开发18-iOS 诸葛亮的锦囊妙计--Block的使用
- iOS开发17-iOS 模态视图的使用
- iOS开发16-iOS NSTimer的使用
- iOS常遇到的錯誤訊息與解決方式
- IOS之atomicnonatomic,assign,copy與retain的定義和區別
- 小议iOS------block传值 回调传值
- iOS与内存管理
- iOS 常用的第三方类库
- iOS开发见闻-第5期
- iOS 本地图片与视频
- iOS回收键盘小见
- iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)
- iOS Property List and Views学习笔记(Lesson 5)
- iOS 画板的简单实现
- iOS关于CGContextSetBlendMode: invalid context 0x0的错误
- iOS 明明存在的头文件,导入时却提示找不到。
- iOS第三方框架---SDWebImage详解
- iOS得知1_初体验
- iOS录音功能真机调试失败
- IOS 时区问题