iOS -- LaunchScreen欢迎界面动画效果
2016-01-14 16:49
549 查看
为什么会出现欢迎界面?
程序在启动的过程中需要消耗一些时间,那么在加载出现主界面之前,会出现短暂的黑屏,这实在是很糟糕的一件事情,会给用户一个非常不好的体验。为了缓解用户等待过程中心理的不适与烦躁,欢迎界面闪亮登场了!
用欢迎界面来替代黑屏的等待,可以有效的掩盖耗时阻塞的后台操作,还能向用户展示有效的信息,是非常好的一种过渡方案。但是有的程序把欢迎界面做成了广告版,浪费了用户更多的时间,让用户觉得厌烦,对程序本身功能也失去了兴趣,这种做法实在是很不明智。
欢迎界面的种类?
欢迎界面种类有很多,大致分为静态和动态两种。
静态的欢迎界面通常比较简洁,一般会放置一张很精美的图片,可能是一张公司或者产品的宣传图,也可能是一张广告图。可以使用LaunchImage和LaunchScreen.storyboard设置静态的欢迎界面
动态的欢迎界面。程序运行起来,欢迎界面之后,会进入AppDelegate,因此我们可以在application:
didFinishLaunchingWithOptions:添加代码完成想要的效果。
方法:
可以直接利用LaunchScreen.xib中得view,在上面添加一个UIImageView显示图片,然后将其加在window上,并显示在最上层。广告图片显示之后,再将view移除掉,显示程序的主界面。
代码如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self.window
makeKeyAndVisible];
lunchView = [[NSBundle
mainBundle ]loadNibNamed:@"LaunchScreen"
owner:nil
options:nil][0];
lunchView.frame =
CGRectMake(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"; [imageV
sd_setImageWithURL:[NSURL
URLWithString:str]
placeholderImage:[UIImage
imageNamed:@"default1.jpg"]];
[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:@"启动图"];
UIImageView *gifView = [[UIImageView
alloc] initWithFrame:CGRectMake(40,
80, image.size.width, image.size.height)];
gifView.backgroundColor = [UIColor
orangeColor];
gifView.image = image;
[self.view
addSubview:gifView];
存在的问题:
这样写,程序启动时仍会出现一个空白的页面,这个空白页面结束后才会走didFinishLaunchingWithOptions:此方法里的代码。
暂时不知道怎么消除默认空白页。
程序在启动的过程中需要消耗一些时间,那么在加载出现主界面之前,会出现短暂的黑屏,这实在是很糟糕的一件事情,会给用户一个非常不好的体验。为了缓解用户等待过程中心理的不适与烦躁,欢迎界面闪亮登场了!
用欢迎界面来替代黑屏的等待,可以有效的掩盖耗时阻塞的后台操作,还能向用户展示有效的信息,是非常好的一种过渡方案。但是有的程序把欢迎界面做成了广告版,浪费了用户更多的时间,让用户觉得厌烦,对程序本身功能也失去了兴趣,这种做法实在是很不明智。
欢迎界面的种类?
欢迎界面种类有很多,大致分为静态和动态两种。
静态的欢迎界面通常比较简洁,一般会放置一张很精美的图片,可能是一张公司或者产品的宣传图,也可能是一张广告图。可以使用LaunchImage和LaunchScreen.storyboard设置静态的欢迎界面
动态的欢迎界面。程序运行起来,欢迎界面之后,会进入AppDelegate,因此我们可以在application:
didFinishLaunchingWithOptions:添加代码完成想要的效果。
方法:
可以直接利用LaunchScreen.xib中得view,在上面添加一个UIImageView显示图片,然后将其加在window上,并显示在最上层。广告图片显示之后,再将view移除掉,显示程序的主界面。
代码如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self.window
makeKeyAndVisible];
lunchView = [[NSBundle
mainBundle ]loadNibNamed:@"LaunchScreen"
owner:nil
options:nil][0];
lunchView.frame =
CGRectMake(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"; [imageV
sd_setImageWithURL:[NSURL
URLWithString:str]
placeholderImage:[UIImage
imageNamed:@"default1.jpg"]];
[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:@"启动图"];
UIImageView *gifView = [[UIImageView
alloc] initWithFrame:CGRectMake(40,
80, image.size.width, image.size.height)];
gifView.backgroundColor = [UIColor
orangeColor];
gifView.image = image;
[self.view
addSubview:gifView];
存在的问题:
这样写,程序启动时仍会出现一个空白的页面,这个空白页面结束后才会走didFinishLaunchingWithOptions:此方法里的代码。
暂时不知道怎么消除默认空白页。
相关文章推荐
- ios 获取相机权限 判断相机状态
- iOS开发-图片高斯模糊效果
- Ios中时间无法响应
- iOS代码实现常用控件之Slider 文字缩放
- iOS开发之自定义封装FrameWork需要的代码
- 我与cocoapods三五事儿,至我那终将逝去的灵魂
- iOS学习路线图
- ios 栈区,堆区
- ios Coredata 的 rollback undo 等事物处理函数
- [iOS]推送相关两点
- iOS开发Transform
- [iOS]推送相关两点
- IOS应用开发中的设备标识
- 环信iOS 简单集成3.0实时通话
- iOS开发系列--并行开发其实很容易
- iOS 字符属性NSAttributedString描述
- ios url 编码和解码
- iOS开发 -- 一键加入qq群
- iOS时间戳和NSDate之间的相互转换
- IOS - Lable基础用法