iOS开发,启动页,全屏,延时的设置



如果想程序刚启动时显示启动页(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;
}

//工作qq联系 627240820



转载于:https://my.oschina.net/u/2429619/blog/494604

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值