这是一个动画转场资源。我们可以给 iOS 应用中的视图控制器之间添加一些转场动画。现在,通过这个动画资源,即使只有一行代码也可以做到这一点。它包括大约 50 种动画。现在,它支持四种用于弹出视图控制器的手势。您可以在 WXSTransitionProperty
中查看属性。
这是一个界面转场动画组。目前仅支持纯代码。在平时开发中,有时需要一些转场动画来为界面增添一些活力。而实现这些动画相对繁琐。为了使转场更简单,我写了这个界面转场动画集。跳转界面时,只需一行代码即可实现这里的动画。包括系统提供的动画在内,目前大约有 50 种动画。
现在已支持手势返回,有四种手势可供选择,可以在 WXSTransitionProperty
中查看相关属性。
#import "UINavigationController+WXSTransition.h"
推送
[self.navigationController wxs_pushViewController:(UIViewController *) animationType:(WXSTransitionAnimationType)];
显示
[self wxs_presentViewController:(UIViewController *) animationType:(WXSTransitionAnimationType) completion:^{
}];
说明:WXSTransitionAnimationType 是转场动画类型,通过该枚举可以选出您想要的转场动画。
[self wxs_presentViewController:<#(UIViewController *)#> makeTransition:^(WXSTransitionManager *transition) {
transition.animationType = WXSTransitionAnimationTypePointSpreadPresent;
transition.animationTime = 1;
}];
可以通过 transition 设置动画时间、返回手势、动画类型等属性,可以在 WXSTransitionProperty
中查看相关可修改属性。
像 point Spread、ViewMoveToNextVC 这样的动画,需要一个起始视图,只需将目标控制器的 startView 指向该视图即可,代码如下;
[self.navigationController wxs_pushViewController:vc makeTransition:^(WXSTransitionProperty *transition) {
transition.animationType = WXSTransitionAnimationTypeViewMoveToNextVC;
transition.animationTime = 1;
transition.startView = cell.imgView;
transition.targetView = vc.imageView;
}];
iOS 实际上有很多不错的转场动画,这个转场动画集也对它们进行了封装,使用方法与自定义转场动画相同。
推送
[self.navigationController wxs_pushViewController:<#(UIViewController *)#> animationType:<#(WXSTransitionAnimationType)#>];
显示
[self wxs_presentViewController:<#(UIViewController *)#> animationType:<#(WXSTransitionAnimationType)#> completion:<#^(void)completion#>]
如果 tabbar 的系统动画影响了效果,可以使用以下方法取消动画。去掉 self.hidesBottomBarWhenPushed = YES 手动控制 tabbar 的隐藏显示时机:推送之前隐藏 tabBar self.tabBarController.tabBar.hidden = YES; pop 后在 viewDidApear 里面显示 self.tabBarController.tabBar.hidden = NO;