#import "UIViewController+HGAnimator.h"
// 使用封装的样式只需要调用这一句
OneViewController *oneVC=[[OneViewController alloc]init];
[self hg_presentViewController:oneVC animateStyle:HGTransitionAnimatorFromLeftStyle delegate:self presentFrame:_presentFrame backgroundColor:_backgroundColor animated:YES];
// 必须掉用下面的dismiss,不要调用[self dismissViewControllerAnimated:YES completion:nil];
[self hg_dismissViewControllerAnimated:YES completion:nil];
实现HGTransitionAnimatorDelegate代理方法Transition
@interface ViewController () <HGTransitionAnimatorDelegate>
- (void)transitionAnimator:(HGTransitionAnimator *)animator animateTransitionToView:(UIView *)toView duration:(NSTimeInterval)duration{ // 弹出动画代码写在这里
}
- (void)transitionAnimator:(HGTransitionAnimator *)animator animateTransitionFromView:(UIView *)fromView duration:(NSTimeInterval)duration
{
// 消失动画代码写在这里
}
- (NSTimeInterval)transitionDuration:(HGTransitionAnimator *)animator
{
// 动画时间写在这里
}
- (BOOL)transitionAnimatorCanResponse:(HGTransitionAnimator *)animator
{
// 蒙版点击是否有效
}
- (NSTimeInterval)transitionDuration:(HGTransitionAnimator *)animator
{
//修改动画时间
}
// 更多代理方法详见demo
查看并运行 HGTransitionAnimator/demo
,目前封装了11种基本样式。带手势识别 dismiss 的有 3 种,具体查看 demo。
animateStyle:HGTransitionAnimatorFromLeftStyle
animateStyle:HGTransitionAnimatorCenterStyle
animateStyle:HGTransitionAnimatorFromRightStyle
animateStyle:HGTransitionAnimatorHiddenStyle
animateStyle:HGTransitionAnimatorFromTopStyle
animateStyle:HGTransitionAnimatorFromBottomStyle
animateStyle:HGTransitionAnimatorVerticalScaleStyle
该项目最低支持 iOS 8.0
和 Xcode 7.0
。
支持横竖屏的切换
。使用控制器管理弹出视图的好处有:面向协议编程
,将控制器与 View 之间的控制链转换成控制器与控制器之间的传递,降低了代码的耦合度并提高了代码的重用率,这也是 Apple 推出转场控制器的用意。例如QQ右上角的添加
、分享界面的底部弹出
等,都可以用自带的样式定义一个专属控制器,支持。目前有11
种自带的样式,基本上可以满足日常开发需求。如果需要自定义,请实现 HGTransitionAnimatorDelegate
代理方法。如果发现bug,请提交 issue,如果想改进,请提交 pull request!
HGTransitionAnimator 使用 MIT 许可证,详情见 LICENSE 文件。