UIViewControllerAnimatedTransitioning 的实验性实现。
您可以手动通过将 KWTransition.h
和 KWTransition.m
复制到项目中来安装此库。
导入头文件。
#import <KWTransition.h>
在初始视图控制器(执行呈现的那个)上实现过渡代理。
<UIViewControllerTransitioningDelegate>
在初始视图控制器上实现过渡管理器属性。
@property (nonatomic, strong) KWTransition *transition;
确保在某个地方初始化管理器。
_transition = [KWTransition manager];
将控制器设置为使用自定义呈现
[self setModalPresentationStyle: UIModalPresentationCustom];
实现过渡代理
#pragma mark - UIVieControllerTransitioningDelegate
- (id <UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented
presentingController:(UIViewController *)presenting
sourceController:(UIViewController *)source {
self.transition.action = KWTransitionStepPresent;
return self.transition;
}
-(id<UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed {
self.transition.action = KWTransitionStepDismiss;
return self.transition;
}
选择您的动画并呈现!
self.transition.style = KWTransitionStyleFadeBackOver;
KWModalViewController *VC = [[KWModalViewController alloc] init];
VC.transitioningDelegate = self;
[self presentViewController:VC animated:YES completion:nil];
所有样式均支持 KWTransitionSettingReverse
设置。
支持 KWTransitionSettingDirectionRight
、KWTransitionSettingDirectionLeft
、KWTransitionSettingDirectionDown
、KWTransitionSettingDirectionUp
和 KWTransitionSettingReverse
。
示例使用 KWTransitionSettingDirectionDown
您可以通过设置管理器的settings
属性来更改某些转换的行为。例如:
manager.style = KWTransitionStyleSink;
manager.settings = KWTransitionSettingDirectionUp | KWTransitionSettingDirectionRight | KWTransitionSettingReverse;
将导致过渡操作与顶部右角执行逆序的显示和消失动画。
以下是可用的设置。由于并非所有样式都支持或设置了(目前),请参阅本文档开头处提供的样式文档,了解具体样式的支持情况。
typedef NS_OPTIONS(NSUInteger, KWTransitionSetting){
KWTransitionSettingNone = 0,
KWTransitionSettingDirectionRight = 1 << 0,
KWTransitionSettingDirectionLeft = 1 << 1,
KWTransitionSettingDirectionDown = 1 << 2,
KWTransitionSettingDirectionUp = 1 << 3,
KWTransitionSettingReverse = 1 << 5
};
欢迎所有贡献!请随时改进现有的或提交您自己的转换。
MIT许可证(MIT)
版权所有(c)2014 Kurt Wagner
在此特此授予任何获得本软件及其相关文档副本(以下简称“软件”)的人士免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本来供他人使用,并且允许获得软件的人士将该软件提供给第三方并允许其对软件进行上述行为,但需遵守以下条件:
上述版权声明和本许可通知应包含在本软件的副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、特定用途的适用性和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是由于合同、侵权或其他原因而产生,无论是在软件或使用软件的过程中产生,还是与软件有关、源于或涉及软件或使用软件。