天天看点

iOS第三方开源类库 -- 视图切换 HMGLTransitions

HMGLTransitions 是一套动画演示两个UIView 或 UIViewController之间切换时的过渡效果;

有些情况下我们需要两个视图之间做一个动画过渡的切换,或许系统自带的CATransition和普通动画难以满足我们的需求,此时第三方类库就是一个不错的选择;HMGLTransitions提供五种不错效果,分别是: 3D Right(letf) 、Cloth、Flip right(letf)、Rotate和Doors

以上是GitHub上下载自带的Demo展示的五种效果图,展示了两个UIView  和 两个UIViewController各自之间动画切换(截图中仅展示两个view之间切换),工程目录结构:

HMGLTransitions目录下是这个第三方类库所有文件,Transitions文件下是五种动画的实现类,你需要那种动画就需要把那种动画头文件包含进去

初始化视图,并把这五种动画效果存放在 transitionsArray数组之中,Switch3DTransition默认向右,FlipTransition默认向左,分别定义了一个t1对象和t2对象,设置t1.transitionType = Switch3DTransitionLeft;   t2.transitionType = FlipTransitionRight; 所以transitionsArray存放的是7种效果,对应transitionsNamesArray数组中关于动画其中效果的名字,显示在视图上的UITableViewCell上;两个数组是一一对应的关系;

两个UIView之间的动画过渡切换实现方法

ModalviewController类中定义一个ModalControllerDelegate协议,定义协议方法- (void)modalControllerDidFinish:(ModalViewController*)modalController;实现两个View之间的传值,也就是当我们在UITableViewCell对象上现则哪中过渡效果是的时候,传递HMGLTransition对象transition;

[HMGLTransitionManager sharedTransitionManager]使用了单例设计模式

实现两个UIViewController之间的动画切换方法

演示一个Demo:

1.新建一个Single View Application模板工程,命名RollingView,将下载下来的工程中里HMGLTransitions文件夹拷贝加入到你的工程目录中,然后添加 QuartzCore.framework 和 OpenGLES.framework 库

2. File->New->File 添加一个控制器类ViewController2,在ViewController.h中包含头文件

在ViewController.m中

自定义Button

点击Button实现两个UIViewController之间的动画切换

在ViewController2类中,方法实现基本类似

     本文转自新风作浪 51CTO博客,原文链接:http://blog.51cto.com/duxinfeng/1208673,如需转载请自行联系原作者

继续阅读