iOS 啟動畫面 代碼自定義


 

 

先來看一個可能會遇到的問題:

 

 

 

如果你已經刪除了xcode為你的項目自動生成的LaunchScreen.storyboard

然后你在測試你的app的時候發現,屏幕里出現了黑色的區域,如上圖(畫紅線的區域):

 

  

那么,你需要重新設置一下xcode里面的一些選項,並且用代碼來實現啟動畫面的自定義。

 


 

 

首先

 

 

箭頭所指的地方,你需要更改為你存放啟動畫面的那個image set。

所以你需要創建一個啟動畫面的Image set。

 

新建的方法如下(點擊項目里的.xcassets文件,在image set編輯頁面右鍵):

 

然后,你就看到:

OK,按照規格,把啟動畫面拖進去吧。

 


 

 

接下來

 

修改xcode里的啟動畫面設置項,如圖:

 

 

 


 

 

最后 

如果使用默認的效果,后面的內容可以不采用了。

 

用代碼來處理啟動畫面選擇(只提供判斷設備的邏輯代碼):

 

//宏定義如下:

#pragma mark -  判斷設備

#define IS_IPAD                 (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE               (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_RETINA               ([[UIScreen mainScreen] scale] >= 2.0)

#define SCREEN_WIDTH            ([[UIScreen mainScreen] bounds].size.width)
#define SCREEN_HEIGHT           ([[UIScreen mainScreen] bounds].size.height)
#define SCREEN_MAX_LENGTH       (MAX(SCREEN_WIDTH, SCREEN_HEIGHT))
#define SCREEN_MIN_LENGTH       (MIN(SCREEN_WIDTH, SCREEN_HEIGHT))

#define IS_IPHONE_4_OR_LESS     (IS_IPHONE && SCREEN_MAX_LENGTH < 568.0)
#define IS_IPHONE_5             (IS_IPHONE && SCREEN_MAX_LENGTH == 568.0)
#define IS_IPHONE_6             (IS_IPHONE && SCREEN_MAX_LENGTH == 667.0)
#define IS_IPHONE_6P            (IS_IPHONE && SCREEN_MAX_LENGTH == 736.0)

#define IS_WIDTH_MORE_IPHONE_6  (IS_IPHONE && SCREEN_MAX_LENGTH >= 667.0)


//圖片選擇代碼:

NSString *imageName = @"";
    if (IS_IPHONE) {
        if (IS_IPHONE_5 ) {
            imageName = @"LaunchImage-700-568h";
        }else if (IS_IPHONE_6){
            imageName = @"LaunchImage-800-667h";
        }else if (IS_IPHONE_6P){
            imageName = @"LaunchImage-800-Portrait-736h";
        }
        else {
            imageName = @"LaunchImage-700";
        }
    }
UIImage *image = [UIImage imageNamed:imageName];

 

 

附上imageName的參數大全:

LaunchImage-568h@2x.png
LaunchImage-700-568h@2x.png
LaunchImage-700-Landscape@2x~ipad.png
LaunchImage-700-Landscape~ipad.png
LaunchImage-700-Portrait@2x~ipad.png
LaunchImage-700-Portrait~ipad.png
LaunchImage-700@2x.png
LaunchImage-Landscape@2x~ipad.png
LaunchImage-Landscape~ipad.png
LaunchImage-Portrait@2x~ipad.png
LaunchImage-Portrait~ipad.png
LaunchImage.png
LaunchImage@2x.png
LaunchImage-800-667h@2x.png     (iPhone 6)
LaunchImage-800-Portrait-736h@3x.png     (iPhone 6 Plus Portrait)
LaunchImage-800-Landscape-736h@3x.png     (iPhone 6 Plus Landscape) 

 

 

 

如果使用了UITabBarController,並使用了storyboard來設定啟動畫面,這里有一篇可參考的文章:http://www.tuicool.com/articles/fuUZ7zq

 

  針對這篇參考文章提到的使用TabBarController的問題,我的解決辦法是在Tab里拿到LaunchScreen.storyboard里的啟動畫面,然后在當前Tab里添加這個啟動畫面的View,再對這個啟動畫面的View設定動畫。如果遇到顯示異常,可以試着調整layer.zPosition來解決。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM