轉 IOS 啓動頁面製作

IOS 啓動頁面製作

發表於2年前(2013-10-15 22:51)   閱讀(2785) | 評論(2) 13人收藏此文章, 我要收藏
1

阿里雲攜手開源中國衆包平臺發佈百萬懸賞項目 »  

如果想程序剛啓動時顯示啓動頁(logo頁),並且啓動頁全屏顯示,程序加載完成後又顯示狀態欄,需要做如下三步:

  • 啓動頁其實只是一張圖片而已,如果你的程序需要兼容 iPhone3 和 iPhone4,那麼要製作對應分辨率的圖片,iPhone3 爲 480 * 320,iPhone4 爲 960 * 640。分別命名爲 Default.png 和 [email protected],然後都放在工程下(可以放到子目錄中)。這樣程序啓動時會默認的去加載。
  • 在<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; 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章