2014-11-04 38 views
5

我剛剛發現爲了能夠在應用商店中爲您的應用描述「這個應用已針對iPhone 6和iPhone 6 Plus進行了優化」。您需要爲啓動圖像使用啓動XIB或故事板文件(每[Apple] [1])。爲iOS8創建啓動Screen.xib

所以,我創建了一個新的啓動屏幕xib,現在我有點但是因爲我通常在代碼中做所有事情,並且不使用接口構建器。我刪除了插入的默認標籤並將UIImageView放入視圖中。現在,我不知道我將如何:

1)告訴UIImageView來調整到它在

2無論屏幕大小)告訴的UIImageView挑ImageA如果一個3.5英寸的屏幕上運行的應用程序或ImageB如果一個4英寸的屏幕正在運行應用程序等等。

本質上,我只是試圖讓啓動.xib模仿啓動屏幕如何正常工作的行爲。如果有人能爲此提供一些幫助,將不勝感激!

回答

4

你有兩個選擇:

  1. 你利用自動佈局,並給予了ImageView的全屏外觀(距離頂部,底部,左側和右側等於0)。但是,這會導致某些屏幕尺寸的圖像被裁剪掉,這可能不是你想要的。因此,您可能需要考慮(2)

  2. 將啓動屏幕圖像放入資產目錄中,並將不同的圖像放入不同的大小類中。

+3

致謝。僅當使用資產目錄在LaunchScreen.xib中提供UIImageView的圖像時,請不要鏈接到「啓動圖像」圖像集,這是行不通的。只需做一組正常的圖像。 – 2014-11-15 15:52:43

+3

如果您使用模擬器進行測試,可能會發現在資產目錄中的LaunchImage資產組上設置5.5「和4.7」圖像不會導致任何更改。這是因爲資產目錄可以在構建之間進行緩存。要確保清潔運行 「重置內容和設置...」模擬器菜單中,並在運行之前清理項目。 – applejack42 2015-02-16 23:19:15

+1

這也可以通過清理構建和簡單地從模擬器中刪除應用程序來實現。 – 2015-02-17 15:28:23

1

您可以通過將約束設置爲超視圖的頂部,底部,前緣和後緣來調整圖像大小。只需點擊imageview並選擇Editor-> Pin頂部上下文菜單。您還可以通過單擊UIImageView並將其設置爲「Aspect Fit」來設置UIImageView的各個方面。確保ImageView在設置約束之前覆蓋整個屏幕,否則您將不得不修改約束條件。

要爲不同的屏幕大小設置不同的圖像,我猜你必須創建一個類,並修改到viewWillAppear中方法來加載適當的圖像

祝你好運! 埃裏克

3

我發現答案有用。我添加了爲iOS 8創建LaunchScreen xib的簡短步驟。

1)從新文件 - >用戶界面 - >啓動屏幕(保持自動佈局開啓)創建一個新的「LaunchScreen xib」。

2)在xib - >視圖(主視圖)中添加圖像視圖。

3)設置飛濺圖像(圖像不應該在資產文件中)。

4)將圖像設置爲「Aspect Fit」(如果需要)。 5)您也可以將「視圖」(超級視圖)背景顏色更改爲接近圖像背景顏色。 6)選擇圖像視圖,點擊從菜單 - 編輯 - 引腳 - 底部空間到超級視圖。

7)這將顯示「視圖」(圖像視圖的超級視圖)附近的紅色錯誤標記。 8)點擊錯誤標記,你會看到近似的兩個自動佈局錯誤。 9)在點擊錯誤時你會發現帶有自動修正佈局錯誤的菜單。 10)關於修正錯誤,你會在超視圖和圖像之間找到總共四個「約束」和「垂直」和「水平」空間。 11)現在你可以在不同的設備或模擬器中測試它們。

UPDATE: -

參照的XCode 9夫特3或4斯威夫特以下是步驟的變化。

第一步是在您最喜歡的圖形軟件中創建圖像(PNG或JPEG)。

與「寬1125×高2436」大小請自行承擔全部背景創建啓動圖像。請注意,背景會剪裁在各種尺寸的設備上。

無論信息,圖形,你不希望被裁剪應該上面的圖片中心中的「寬1125×高1471」的大小來創建。這應該始終處於完整圖像的中心位置。

圖像準備就緒後,您可以將其添加到xcassets文件或保留在資源中。

現在請進行以下步驟。

1)已使用新項目創建「LaunchScreen storyboard」。打開它。

2)在視圖上添加圖像視圖。

3)將上面保存的飛濺圖像設置爲圖像視圖。

4)將Image的'Content mode'設置爲「Aspect Fill」。

5)添加圖片視圖的頂部,底部,尾隨和領導Superview 4約束。

這是爲肖像模式應用程序飛濺完成的。

問候。

0

啓動xib無法自定義類,因爲您的應用在顯示時未啓動。 我落得這樣做是:

  1. 使用施膠類功能
  2. 與適用於各大小類
約束創建3張UI圖片(每張大小類一)
  • 使用自動佈局

    因此,當你顯示一種類型的設備的寬度和其他兩個的UIImageView的HIGHT約束被設置爲0