自定义视图切换效果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义视图切换效果相关的知识,希望对你有一定的参考价值。

 先创建一个UIStoryboardSegue子类并覆盖perform方法。在perform方法中,拿到指向源视图控制器的主视图图层的指针,然后实现自定义切换动画(使用Core Animation)。一旦动画完成,就可以推送(push)到目标视图控制器(可以从联线对象中获得一个指向该视图控制器的指针)。

#import "CustomSegue.h"

@implementation CustomSegue
-(void)perform
{
    UIViewController*src=(UIViewController*)self.sourceViewController;
    UIViewController*dest=(UIViewController*)self.destinationViewController;
    
    CGRect f=src.view.frame;
    CGRect oringinalSourceRect=src.view.frame;
    f.origin.y=f.size.height;
    
    [UIView animateWithDuration:5 animations:^{src.view.frame=f;} completion:^(BOOL finished){
        src.view.alpha=0;
        dest.view.frame=f;
        dest.view.alpha=0.0;
        [[src.view superview]addSubview:dest.view];//窗口添加子视图
        
        [UIView animateWithDuration:5 animations:^{dest.view.frame=oringinalSourceRect; dest.view.alpha=1.0;} completion:^(BOOL finished){
            [dest.view removeFromSuperview];
            src.view.alpha=1.0f;
            [src.navigationController pushViewController:dest animated:NO];
        }];
    }];
}

@end

 

以上是关于自定义视图切换效果的主要内容,如果未能解决你的问题,请参考以下文章

在片段中创建自定义列表视图时出错所需活动,找到片段

片段中的按钮自定义视图

android MVP - 我可以有多个演示者用于自定义视图和片段

Android:在片段内膨胀自定义视图

为片段制作自定义列表视图?

如何在片段内创建自定义列表视图