ZJModalKing 1.0.3

ZJModalKing 1.0.3

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2015年5月

Jiajun Zheng维护。



  • 作者
  • Jiajun Zheng

Constom Modal Transition Animation Framework

提供一个modal视图控制器及其需要在屏幕上显示的frame,同时提供一个显示动画块和一个消失动画块。然后转场动画将执行您想要的操作。

modal有两种方法:

  • 第一种是普通显示,这时候您需要自己调用dismiss方法。

  • 第二种类似于弹出菜单,框架会创建一个透明的遮罩视图,当您点击modal视图外的空间时,它将自动消失。

/**
 *  First way without dumming view
 *
 *  @param modalVC          modal view controller
 *  @param presentFrame     modal view frame in screen
 *  @param presentAnimation present animation block. return timeinterver of animation time
 *  @param dismissAnimation dismiss animation block. return timeinterver of animation time

 *  @param completion       comletion block
 */
-(void)mk_presentViewController:(UIViewController *)modalVC
               withPresentFrame:(CGRect)presentFrame
           withPresentAnimation:(NSTimeInterval (^)(UIView *view))presentAnimation
           withDismissAnimation:(NSTimeInterval (^)(UIView *view))dismissAnimation
                 withCompletion:(void (^)(void))completion;

/**
 *  Second way with dumming view
 *
 *  @param modalVC          modal view controller
 *  @param presentFrame     modal view frame in screen
 *  @param presentAnimation present animation block. return timeinterver of animation time
 *  @param dismissAnimation dismiss animation block. return timeinterver of animation time

 *  @param completion       comletion block
 */
-(void)mk_presentViewControllerWithDummingView:(UIViewController *)modalVC
               withPresentFrame:(CGRect)presentFrame
           withPresentAnimation:(NSTimeInterval (^)(UIView *view))presentAnimation
           withDismissAnimation:(NSTimeInterval (^)(UIView *view))dismissAnimation
                 withCompletion:(void (^)(void))completion;

自定义modal转场动画框架

给定一个modal的视图控制器和其在界面上需要显示的frame,再加上一个显示动画和一个消失动画就可以产生一个自定义的modal转场效果。

这里提供了两种调用方式:

  • 第一种是普通情况,也就是使用者在视图控制器内部适当时机调用dismiss方法。
  • 第二种是特殊情况下,可以类似于菜单效果,框架提供了一个透明的遮罩视图在modal视图后面。框架还提供了点击遮罩来自动 dismiss 的效果。

/**

  • 无遮罩方法 *
  • @param modalVC 需要展示的viewController
  • @param presentFrame 展示视图在屏幕的frame
  • @param presentAnimation 展示动画代码(返回的时间是转场动画上下文关闭的时间)
  • @param dismissAnimation 消失动画代码(返回的时间是转场动画上下文关闭的时间) 关于转场动画上下文时长说明: 转场动画上下文关闭的时间决定了改转场动画封锁界面的用户交互能力的时长,如果返回0表示立即接受用户交互,那么可能存在在动画过程中用户交互而导致动画达不到预期效果。一般来说建议返回动画的时间长度,即动画结束时,然后开启用户交互能力。特殊需求可以填写特殊时长
  • @param completion 完成回调 */ -(void)mk_presentViewController:(UIViewController *)modalVC withPresentFrame:(CGRect)presentFrame withPresentAnimation:(NSTimeInterval (^)(UIView *view))presentAnimation withDismissAnimation:(NSTimeInterval (^)(UIView *view))dismissAnimation withCompletion:(void (^)(void))completion;

/**

  • 自带透明遮盖,点击非跳转界面可以dismiss *
  • @param modalVC 需要展示的viewController
  • @param presentFrame 展示视图在屏幕的frame
  • @param presentAnimation 展示动画代码(返回的时间是转场动画上下文关闭的时间)
  • @param dismissAnimation 消失动画代码(返回的时间是转场动画上下文关闭的时间) 关于转场动画上下文时长说明: 转场动画上下文关闭的时间决定了改转场动画封锁界面的用户交互能力的时长,如果返回0表示立即接受用户交互,那么可能存在在动画过程中用户交互而导致动画达不到预期效果。一般来说建议返回动画的时间长度,即动画结束时,然后开启用户交互能力。特殊需求可以填写特殊时长
  • @param completion 完成回调 */ -(void)mk_presentViewControllerWithDummingView:(UIViewController *)modalVC withPresentFrame:(CGRect)presentFrame withPresentAnimation:(NSTimeInterval (^)(UIView *view))presentAnimation withDismissAnimation:(NSTimeInterval (^)(UIView *view))dismissAnimation withCompletion:(void (^)(void))completion;