iOS -- LaunchScreen欢迎界面动画效果
为什么会出现欢迎界面?
运行中程序会占用一定的时间,在加载过程中尚未展示主界面时会短暂黑屏这种情况实在令人感到十分困扰为了缓解用户等待过程中的心理不适与烦躁欢迎界面闪现而至
用长时间等待来替代黑屏的操作会更加高效地隐藏后台耗时操作的同时还能提供有用的信息是非常好的过渡方案但是一些程序将欢迎界面设计得过于商业化的结果是浪费了大量时间让用户感到不满并且降低了对程序功能的关注度这种做法实在不够明智
欢迎界面的种类?
欢迎界面种类有很多,大致分为静态和动态两种。
静态的欢迎界面通常较为简洁,并且一般会放置一张精美图片。这张图片可能代表公司或产品的宣传图,也可能是广告图。可以通过LaunchImage和LaunchScreen.storyboard来设置静态的欢迎界面
动态式欢迎界面。当程序运行时,在欢迎界面之后会启动AppKit(AppDelegate),因此,在application:...阶段可以通过添加相关代码来实现预期的功能。
方法:
通过基于LaunchScreen.xib中的View对象,在其表面附加一个ImageView以展示图像;随后将其放置于窗体顶层窗口上方,并使其呈现显眼位置。完成后隐藏该ImageView以恢复主界面展示状态
代码如下:
- (BOOL) application: (AppDelegate * application) applicationDidFinishLaunchingWithOptions: (NSDictionary *) launchOptions {
[self.window makeKeyAndVisible];
lunchView 被赋值为由 NSLoader 载荷名为 "LaunchScreen" 的 nib 文件的结果
lunchViewFrame被赋值为一个由矩形框定义的区域;该区域从窗口屏幕的尺寸获取其宽度和高度;具体来说;该矩形框从左上角开始;其坐标为(0, 0);宽度由self.window.screen.bounds.size.width获取;高度由self.window.screen.bounds.size.height获取
[self.window addSubview:lunchView];
UIImageView *imageV = [[UIImageView alloc] initWithFrame:CGRectMake(0, 50, 320, 300)];
NSString *str = ["http://club.dayoo.com/club_data/upload_photo/rtys/2008/07/21/988/2473.gif" as NSString variable: str];
[UIImage imageNamed:@"default1.jpg"] setPlaceholderImageFor:[imageV setImageUrlFor: [NSURL URLWithFormat:"http://%s", str]];
[lunchView addSubview:imageV];
[self.window bringSubviewToFront:lunchView];
[NSTimer scheduledTimerWithTimeInterval:6 target:self selector:@selector(removeLun) userInfo:nil repeats:NO];
return YES;
}
-(void)removeLun {
[lunchView removeFromSuperview];
}
加载本地的gif图片可以使用SDWebImage这个第三方框架:方法如下
UIImage *image = [UIImage sd_animatedGIFNamed:@"启动图"];
让我们创建一个新的ImageView实例,并设置其大小为图像的实际宽度和高度:
gifView.backgroundColor = [UIColor orangeColor];
gifView.image = image;
[self.view addSubview:gifView];
存在的问题:
在程序启动过程中仍会出现一个空白页面,在该空白页面完成后才会执行...didFinishLaunchingWithOptions:其中包含的代码逻辑
暂时不知道怎么消除默认空白页。
