iOS开发,启动页,全屏,延时
2012-10-10 12:54
274 查看
如果想程序刚启动时显示启动页(logo页),并且启动页全屏显示,程序加载完成后又显示状态栏,需要做如下三步:
启动页其实只是一张图片而已,如果你的程序需要兼容 iPhone3 和 iPhone4,那么要制作对应分辨率的图片,iPhone3 为 480 * 320,iPhone4 为 960 * 640。分别命名为 Default.png 和 Default@2x.png,然后都放在工程下(可以放到子目录中)。这样程序启动时会默认的去加载。
在<AppName>-info.plist 文件中加入选项 "Status bar is initially hidden", 值为 YES
在 AppDelegate.m 文件中的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法内加入代码: [[UIApplication sharedApplication] setStatusBarHidden:NO];
如果还想让启动页保持一定时间以便让用户看清楚启动页的内容(启动页一般显示公司logo等信息),可以在 AppDelegate.m 文件中的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法内加入延时代码:
[NSThread sleepForTimeInterval:2.0]; //这里延时两秒
【注意】
如果你的程序同时使用了导航栏作为根视图控制器 UINavigationController,则应该将语句 [[UIApplication sharedApplication] setStatusBarHidden:NO] 放在 [self.window makeKeyAndVisible]; 之前,否则会出现状态栏与导航栏重叠的情况。可能是因为调用 makeKeyAndVisible 时会去判断当前程序是否显示状态栏,以此来布导航栏的位置。
如下代码会导致导航栏与状态栏重叠:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
[NSThread sleepForTimeInterval:2.0]; //延时2秒,以便用户看清楚启动页
LoginController *login = [[[LoginController alloc] initWithNibName:@"LoginController" bundle:nil] autorelease];
self.navController = [[[UINavigationController alloc] initWithRootViewController:login] autorelease]; //初始化导航栏控制器
self.window.rootViewController = self.navController;
[self.window makeKeyAndVisible];
[[UIApplication sharedApplication] setStatusBarHidden:NO]; //启动完成后显示状态栏,该语句放在 makeKeyAndVisible 之后会导致状态栏与导航栏重叠
return YES;
}
以上代码应该改为:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
[NSThread sleepForTimeInterval:2.0]; //延时2秒,以便用户看清楚启动页
LoginController *login = [[[LoginController alloc] initWithNibName:@"LoginController" bundle:nil] autorelease];
self.navController = [[[UINavigationController alloc] initWithRootViewController:login] autorelease]; //初始化导航栏控制器
self.window.rootViewController = self.navController;
[[UIApplication sharedApplication] setStatusBarHidden:NO]; //启动完成后显示状态栏,该语句应该放在 makeKeyAndVisible 之前
[self.window makeKeyAndVisible];
return YES;
}
【参考】
http://www.cocoachina.com/bbs/read.php?tid=99012&page=1
启动页其实只是一张图片而已,如果你的程序需要兼容 iPhone3 和 iPhone4,那么要制作对应分辨率的图片,iPhone3 为 480 * 320,iPhone4 为 960 * 640。分别命名为 Default.png 和 Default@2x.png,然后都放在工程下(可以放到子目录中)。这样程序启动时会默认的去加载。
在<AppName>-info.plist 文件中加入选项 "Status bar is initially hidden", 值为 YES
在 AppDelegate.m 文件中的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法内加入代码: [[UIApplication sharedApplication] setStatusBarHidden:NO];
如果还想让启动页保持一定时间以便让用户看清楚启动页的内容(启动页一般显示公司logo等信息),可以在 AppDelegate.m 文件中的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法内加入延时代码:
[NSThread sleepForTimeInterval:2.0]; //这里延时两秒
【注意】
如果你的程序同时使用了导航栏作为根视图控制器 UINavigationController,则应该将语句 [[UIApplication sharedApplication] setStatusBarHidden:NO] 放在 [self.window makeKeyAndVisible]; 之前,否则会出现状态栏与导航栏重叠的情况。可能是因为调用 makeKeyAndVisible 时会去判断当前程序是否显示状态栏,以此来布导航栏的位置。
如下代码会导致导航栏与状态栏重叠:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
[NSThread sleepForTimeInterval:2.0]; //延时2秒,以便用户看清楚启动页
LoginController *login = [[[LoginController alloc] initWithNibName:@"LoginController" bundle:nil] autorelease];
self.navController = [[[UINavigationController alloc] initWithRootViewController:login] autorelease]; //初始化导航栏控制器
self.window.rootViewController = self.navController;
[self.window makeKeyAndVisible];
[[UIApplication sharedApplication] setStatusBarHidden:NO]; //启动完成后显示状态栏,该语句放在 makeKeyAndVisible 之后会导致状态栏与导航栏重叠
return YES;
}
以上代码应该改为:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
[NSThread sleepForTimeInterval:2.0]; //延时2秒,以便用户看清楚启动页
LoginController *login = [[[LoginController alloc] initWithNibName:@"LoginController" bundle:nil] autorelease];
self.navController = [[[UINavigationController alloc] initWithRootViewController:login] autorelease]; //初始化导航栏控制器
self.window.rootViewController = self.navController;
[[UIApplication sharedApplication] setStatusBarHidden:NO]; //启动完成后显示状态栏,该语句应该放在 makeKeyAndVisible 之前
[self.window makeKeyAndVisible];
return YES;
}
【参考】
http://www.cocoachina.com/bbs/read.php?tid=99012&page=1
相关文章推荐
- iOS开发,启动页,全屏,延时的设置
- iOS开发 GCD的延时执行
- iOS开发——点击图片全屏显示
- iOS开发中如何解决TableView中图片延时加载
- ios开发 只让播放视频的 时候能够全屏横屏 其他全部非全屏非横屏
- iOS开发---设置启动页停留时间
- 【iOS-Cocos2d游戏开发】Cocos2d-iPhone动作Action-延时动作
- iOS开发-进阶:延时执行的几种方式的比较和汇总
- iOS开发-隐藏系统状态栏 让app启动时图片全屏 进入程序后显示状态栏方法。
- iOS开发中几种延时执行代码
- iOS程序开发中设置UITableView的全屏分隔线的方法(不画线)
- 如何ios中间Safari在开发了类似的native app像全屏webapp
- iOS开发-关于UI界面未能铺满全屏的问题
- [APP开发技巧] video标签在IOS和安卓上的非全屏自动播放
- iOS项目开发实战——如何进行延时操作
- iOS开发笔记:实现点击图片放大全屏
- iOS启动页延时
- iOS开发笔记:实现点击图片放大全屏
- iOS开发 关于启动页和停留时间的设置
- 怎样在ios中的Safari内开发出一款类似native app一样的全屏webapp