启动页动画设计原理

  • 根据window的切换达到启动页面的设计
    1.  在appDelegate新增一个UIWindow *delayLaunchWindow;对象

    @interface AppDelegate () {
        UIWindow *delayLaunchWindow;
    }


    2. 在不修改之前框架的情况下,新增window控制器
     

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // Override point for customization after application launch.
        
        [self setupRootCtl];
        [self delayLaunchImage];
        
        return YES;
    }
    
    - (void)setupRootCtl {
        self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
        self.window.backgroundColor = [UIColor whiteColor];
        MainMenuTabBarVC *mainMenuVC = [[MainMenuTabBarVC alloc] init];
        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:mainMenuVC];
        self.window.rootViewController = nav;
        [self.window makeKeyAndVisible];
    }
    
    - (void)delayLaunchImage {
        
        delayLaunchWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
        self.window.backgroundColor = [UIColor whiteColor];
        delayLaunchWindow.rootViewController = [UIViewController new];
        delayLaunchWindow.backgroundColor = [UIColor redColor];
    
        UIImageView *imageView = [[UIImageView alloc] initWithFrame:[UIScreen mainScreen].bounds];
        [imageView setImage:[UIImage imageNamed:@"11.PNG"]];
        [delayLaunchWindow addSubview:imageView];
        [delayLaunchWindow makeKeyAndVisible];
        
        self.window.backgroundColor = [UIColor whiteColor];
    
        [self performSelector:@selector(cancelLaunImage) withObject:nil afterDelay:5];
    }


    3. 启动动画完成,移除window控制器
     

    - (void)cancelLaunImage {
        [delayLaunchWindow resignKeyWindow];
        delayLaunchWindow = nil;
    }

    完成收工!~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值