2013-06-04 178 views
2

每次打開時,我都想更改應用程序的啓動圖像。我搜索谷歌和我發現兩種方法:每次啓動時更改應用程序的啓動圖像

  1. 中的plist配置文件設置我的啓動圖像的名字,每一次更換圖像文件。

  2. 每次應用程序啓動時,刪除plist中的啓動圖像屬性,顯示另一個imageview或uiview,並更改imageview的圖像;

第一種方式,有人說蘋果可能會拒絕該應用程序或者它可能不被批准。這可能是這種情況嗎?

第二種方式,在我的應用程序配置和加載並且應用程序在加載過程中顯示黑屏時需要很長時間。

+0

我不知道哪種方式會被蘋果接受。我非常肯定你不打算改變發佈圖片,除非你更新了蘋果應用商店。我非常確定我已經在某處讀過這篇文章,但我不記得在哪裏,所以我現在沒有什麼可以支持它。 – Popeye

+0

您還可以使用解決方案#2與「共同」啓動畫面來動畫到您的新圖像? – rdurand

+0

如果您不提供啓動圖像,請引用人機界面指南「啓動圖像(所有應用程序需要** **)」 – rdurand

回答

7

我建議你在代碼中這樣做,也就是使用UIImageView顯示你自己的「虛擬」啓動屏幕。

當你存檔你的應用程序時,你想要實現的是不可能的,ipas(以及它們的內容,包括Info.plist)都被簽名。這意味着您做出的任何修改都會破壞簽名,因此您需要重新簽名以使其再次可執行。實現這一目標的唯一方法是再次對您的內容進行簽名並將應用程序再次提交給AppStore,這會使您的論點失效。

轉到UIImageView的方法,我知道它看起來不那麼好,但它是最接近你可以得到蘋果生態系統強加的約束。

+0

我認爲如果您很好地處理動畫,UIImageView選項可以看起來不錯! – rdurand

+0

-1用於'apks'。 'APKs'是android不是iOS的。如果更正,將會刪除。 – Popeye

+0

刪除-1進行更正。 – Popeye

3

簡單的答案是你不能這樣做。這是因爲您必須修改的圖像是Default.png,它是位於項目主包中的啓動圖像名稱,不允許編輯/修改/修改iOS項​​目主包中的文件。

這是因爲主包的內容是加密的(認爲它是如何拼寫的)作爲Apple App商店提交的一部分進行簽名。因此,修改主包中的內容可能導致應用程序停止運行。

這也違背了Apple submission guidelines

此外,雖然有人建議通過動畫代碼來啓動它,但啓動後仍然需要啓動圖像,因爲它是蘋果人機界面指南的一部分。所有應用程序都必須具有啓動圖像。

您可以擁有不同的啓動圖像的唯一時間是當您的設備和/或視網膜顯示和/或方向基礎。

這裏有一些你可以使用的。

Default.png 
[email protected] 
Default-568h.png or [email protected] 
Default-Portait.png 
[email protected] 
Default~ipad.png 
Default-Portait~ipad.png 
[email protected]~ipad.png 
etc 
1

發佈圖像本身不可更改,因爲它在您的包中。最好的方法是儘快顯示UIImageView。

這意味着:applicationDidFinishLaunching應該放置窗口和圖像視圖並在以後安排實際工作。返回YES儘快 - 這樣,iOS會認爲你的應用程序已啓動並顯示你的窗口與uiimageview

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

    // show the main window, overlay with splash screen + alpha dissolve... 
     UIImageView *splashScreen = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]]; 
    [self.window addSubview:splashScreen];   
    [self.window makeKeyAndVisible]; 

     // in the method do all you normally do 
    [self performSelector:@selector(delayedLaunch:) withObject:options afterDelay:0.1]; 

    [UIView animateWithDuration:0.3 animations:^{splashScreen.alpha = 0.0;} 
        completion:(void (^)(BOOL)) ^{ 
          [splashScreen removeFromSuperview]; 
        } 
    ]; 

    return YES; 
} 
+0

啓動圖像與飛濺不一樣。啓動圖像假設在加載時給出應用程序的第一印象。應用程序啓動和正在初始化並放置在屏幕上的實際界面之間的插頁式廣告。 – Andy

+0

命名它你喜歡什麼。我同意但許多人使用啓動圖像作爲飛濺:) –

+0

請務必在投票時留下評論,以便我可以解決任何問題... –

相關問題