iOS控制器自定义动画跳转方法(模态跳转)-创新互联
参考资料:
创新互联建站是一家专注于网站设计、网站制作与策划设计,邹平网站建设哪家好?创新互联建站做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:邹平等地区。邹平做网站价格咨询:18980820575Apple 开发文档 Customizing the Transition Animations
WWDC 2013 Custom Transitions Using View Controllers
图例:
跳转的动画有很多,全部可以自定义
创建自定义跳转必须遵循的三个步骤:
1、创建一个类,并实现了 UIViewControllerAnimatedTransitioning 协议
2、创建一个类作为 UIViewControllerTransitioningDelegate 过渡代理
3、在模态跳转前修改控制器的 transitioningDelegate 代理为自定义的代理(步骤2的代理类)
核心代码示例
一、创建一个类,并实现了 UIViewControllerAnimatedTransitioning 协议
这个协议主要控制控制器视图的显示的,通过 transitionContext 可以获取到每个视图和控制器,并进行动画的设置
class AnimatedTransitioning: NSObject { var isPresenting: Bool = false } extension AnimatedTransitioning: UIViewControllerAnimatedTransitioning { func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval { return 0.5 } func animateTransition(using transitionContext: UIViewControllerContextTransitioning) { let fromView = transitionContext.view(forKey: .from)! let toView = transitionContext.view(forKey: .to)! let containerView = transitionContext.containerView if isPresenting { toView.transform = CGAffineTransform(scaleX: 0, y: 0) containerView.addSubview(toView) } else { containerView.insertSubview(toView, belowSubview: fromView) } UIView.animate(withDuration: 0.5, animations: { if self.isPresenting { toView.transform = CGAffineTransform.identity } else { fromView.transform = CGAffineTransform(scaleX: 0.001, y: 0.001) } }) { (finished) in transitionContext.completeTransition(finished) } } }
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站标题:iOS控制器自定义动画跳转方法(模态跳转)-创新互联
文章地址:http://lswzjz.com/article/dhjhoh.html