TLAnimatedSegue 是一个 storyboard segues,允许您编写利用新控制器的实际显示与内部 segues 逻辑之间的动画传输。
该项目包含两个类:TLPresentSegue
和 TLAnimatedSegue
。后者继承自前者。
要使用此 segues,您需要像其他 segues 一样在您的 storyboard 中对其进行设置。XCode 会检测您项目中的 UIStoryboardSegue 子类,让它直接在 storyboard 中选择。
然后,您提供一个符合 TLAnimatedSegueDelegate 协议的对象。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue isKindOfClass:[TLAnimatedSegue class]]) {
((TLAnimatedSegue *) segue).delegate = self;
}
}
此协议声明了一个方法,在实际显示发生之前被调用,允许您在正确的时间编写动画代码。
- (void)animateSegueFormViewController:(UIViewController *)sourceController toViewController:(UIViewController *)destinationController onComplete:(void (^)(void))onComplente {
...
}
动画完成后,您需要调用 onComplete
回调来通知 segues 继续进行显示。TLAnimatedSegueDelegate 协议扩展了 TLPresentSegueDelegate 协议,因此它还允许您控制新控制器是否替换当前控制器或仅在显示堆栈顶部呈现。
TLAnimatedSegue 扩展了 TLPresentSegue,对有或没有导航控制器的情况进行抽象,因此您几乎可以在任何情况下使用这些 segues。
要运行示例项目,您可以克隆仓库并在 Example
目录下运行项目,或者只需在终端中运行 pod try TLAnimatedSegue
。
您始终可以选择克隆仓库并将代码集成到您的项目中,具体方式如下:
BrunoBerisso,[email protected]
TLAnimatedSegue 可在 MIT 许可协议下获得。有关更多信息,请参阅 LICENSE 文件。