IOS学习笔记(5)——启动logo画面的设置
2014-09-17 21:34
459 查看
1、需求介绍
一个正规的手机APP,都会有启动Logo画面,有时候会在启动画面加载一定的广告,例如腾讯新闻、网易新闻;这些APP都会有自己的启动Logo画面。设计一个体检较佳的启动画面往往是开发优秀APP的第一步。
2、启动画面的实现
一个完成的启动画面应分为两部分,第一部分IOS系统启动,这个启动的画面伴随着APP的启动;第二个画面是APP自定义画面,这个画面往往伴随着APP的数据初始化、登录等APP初始化工作。这时候启动画面可以是Logo画面,也可以加载广告图片。下面分别介绍这两部分的实现。
第一阶段:
加载时间:这个阶段是系统在加载应用,这个阶段加载的启动画面默认是1秒,如果想要延长这个阶段的时间,可以采取下面方法:
在AppDelegate.m里加入线程延迟
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions
{
[NSThreadsleepForTimeInterval:2];
...........
}
Logo图片的加载:首先需要设置以下选项:
选项设置后,APP就会从资源目录里查找Default.png图片进行加载。针对不同的分辨率,会有不同的图片选择:
iPhone 4 320x480 ------->Default.png
iPhone 4s 640x960 ------->Default@2x.png
iPhone 5/5s 640x1136 -------->Default-568h@2x.png
IPAD对应不同的Iphone手机。
第二阶段:
自定义启动画面一般是在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions中实现。
我们工程项目里在这个方法中开始加载自己的画面LogoViewController,在LogoViewController里面,进行了广告的加载,如果没有广告数据,则继续
默认Logo图片的加载。让第一阶段第二阶段看起来只有一张图片。加载广告时,直接显示广告图片,但是再次加载原来的Logo让这两个阶段无缝结合
有点麻烦。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
.........
LogoViewController* wLogVC = [[LogoViewController alloc] initWithMainWindow:self.window];
.........
}
在LogoViewController中,需要根据不同的设备加载不同的图片,目前iPhone手机尺寸主要是iPhone 4/4s和Iphone 5/5s,如果不考虑不同的机型以及Retina屏幕问题,会出现Logo图片“闪调”的现象,这样的Logo加载是良好的用户体验无法容忍的。
代码中根据不同的设备进行判断加载不同的Logo图片;
if(wAdsData != nil)
{
//加载广告图片
......
}
else
{
if (568 == frameHeight)
{
logoImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default-568h@2x.png"]];
}
if (480 == frameHeight)
{
if (IS_RETINA)
{
logoImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default@2x.png"]];
} else
{
logoImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]];
}
}
[self addSubview:logoImageView];
}
其中Retina屏幕的判断:
#define IS_RETINA ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] && ([UIScreen mainScreen].scale == 2.0))
然而即使这样,仔细的观察还是隐约能够看到两个阶段之间有略微的闪过。
3、参考资料
/article/2938532.html
http://www.myexception.cn/iphone/752796.html
一个正规的手机APP,都会有启动Logo画面,有时候会在启动画面加载一定的广告,例如腾讯新闻、网易新闻;这些APP都会有自己的启动Logo画面。设计一个体检较佳的启动画面往往是开发优秀APP的第一步。
2、启动画面的实现
一个完成的启动画面应分为两部分,第一部分IOS系统启动,这个启动的画面伴随着APP的启动;第二个画面是APP自定义画面,这个画面往往伴随着APP的数据初始化、登录等APP初始化工作。这时候启动画面可以是Logo画面,也可以加载广告图片。下面分别介绍这两部分的实现。
第一阶段:
加载时间:这个阶段是系统在加载应用,这个阶段加载的启动画面默认是1秒,如果想要延长这个阶段的时间,可以采取下面方法:
在AppDelegate.m里加入线程延迟
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions
{
[NSThreadsleepForTimeInterval:2];
...........
}
Logo图片的加载:首先需要设置以下选项:
选项设置后,APP就会从资源目录里查找Default.png图片进行加载。针对不同的分辨率,会有不同的图片选择:
iPhone 4 320x480 ------->Default.png
iPhone 4s 640x960 ------->Default@2x.png
iPhone 5/5s 640x1136 -------->Default-568h@2x.png
IPAD对应不同的Iphone手机。
第二阶段:
自定义启动画面一般是在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions中实现。
我们工程项目里在这个方法中开始加载自己的画面LogoViewController,在LogoViewController里面,进行了广告的加载,如果没有广告数据,则继续
默认Logo图片的加载。让第一阶段第二阶段看起来只有一张图片。加载广告时,直接显示广告图片,但是再次加载原来的Logo让这两个阶段无缝结合
有点麻烦。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
.........
LogoViewController* wLogVC = [[LogoViewController alloc] initWithMainWindow:self.window];
.........
}
在LogoViewController中,需要根据不同的设备加载不同的图片,目前iPhone手机尺寸主要是iPhone 4/4s和Iphone 5/5s,如果不考虑不同的机型以及Retina屏幕问题,会出现Logo图片“闪调”的现象,这样的Logo加载是良好的用户体验无法容忍的。
代码中根据不同的设备进行判断加载不同的Logo图片;
if(wAdsData != nil)
{
//加载广告图片
......
}
else
{
if (568 == frameHeight)
{
logoImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default-568h@2x.png"]];
}
if (480 == frameHeight)
{
if (IS_RETINA)
{
logoImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default@2x.png"]];
} else
{
logoImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]];
}
}
[self addSubview:logoImageView];
}
其中Retina屏幕的判断:
#define IS_RETINA ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] && ([UIScreen mainScreen].scale == 2.0))
然而即使这样,仔细的观察还是隐约能够看到两个阶段之间有略微的闪过。
3、参考资料
/article/2938532.html
http://www.myexception.cn/iphone/752796.html
相关文章推荐
- APP应用程序图标 及 程序启动画面设置 ios logo设置
- iOS开发笔记--如何自定义启动画面Default.png加载时间
- iOS学习笔记14—设置顶部状态栏(State)的两种方式
- IOS app启动画面和图标设置(Iphone5 and IOS7 and Xcode5)
- IOS 启动画面和图标设置(适配IOS7 and Xcode5)
- IOS 启动画面和图标设置(适配IOS7 and Xcode5)
- IOS 启动画面和图标设置 ios7
- ios启动画面设置---launch Images(三步搞定)
- 孙鑫VC学习笔记:第九讲 界面修改,工具栏,状态栏,启动画面的制作
- IOS 启动画面和图标设置(适配IOS7 and Xcode5)
- IOS 启动画面和图标设置
- 孙鑫VC学习笔记:第九讲 界面修改,工具栏,状态栏,启动画面的制作
- iOS学习笔记1—UITableViewCell设置
- IOS开发8---APP应用程序图标 及 程序启动画面设置
- Windows Phone学习笔记:设计启动画面 (Splash screen)
- IOS开发8---APP应用程序图标 及 程序启动画面设置。
- iOS学习笔记10—UILabel设置自动使用高和换行
- air开发ios程序时,启动画面的设置
- IOS 启动画面和图标设置(适配IOS7 and Xcode5)
- 【XEN学习笔记】XEN 4.1.0 PVOPS设置和启动中遇到的一些问题