Launch Screen在iOS7 8中的實現

2021-06-29 16:18:12 字數 1251 閱讀 7624

目前專案中需要解決的問題是:

- 相容ios7和ios8,之前的版本不需要支援了

- 實現相容3.5、4、4.7和5.5寸螢幕,豎屏的lauch screen

建立所需的png

有關iphone6/6+相關尺寸

需要如下尺寸:

- 用於iphone6+的1242x2208,或者1080x1920,也就是retina hd 5.5

- 用於iphone6的750x1334,也就是retina hd 4.7

- 用於4寸屏(iphone5/5s)的640x1136,就是retina 4

- 用於3.5寸(iphone4/4s)的640x960,就是2x

使用launchimage

使用launchimage,可以相容ios7和ios8。

因為ios8也會呼叫launchscreen.xib,所以我的做法是直接刪除它。就是這個檔案:

然後,在images.xcassets中建立乙個launchimage

需要在專案屬性裡,launch images source裡設定為launchimage

測試了一下:

- iphone6+使用的是retina hd 5.5

- iphone6使用的是retina hd 4.7

- iphone5s使用的是retina 4

- iphone4s使用的是2x

使用lauchscreen.xib

這是xcode6/ios8的新功能,也就是說,這個步驟,是為了支援ios8的,而不支援ios7。其實在目前的專案用不上,不過做了技術準備,就寫下來吧。

看到這個方形的xib檔案,怪怪的,這是為了支援橫屏和豎屏的,因為這個專案只需要豎屏,也可以這樣:

給launchscreen.xib中加乙個,用剛剛建立的backgroundimage。

測試一下,ios8下面的launch screen都沒有問題了:

- iphone6+用的是3x

- iphone5s用的是retina 4 2x

- iphone6和iphone4s都是用的2x

- 因此我沒有新增1x的,基本沒用。

結論 - 目前比較好的方式是使用launch image的方式建立各種裝置的檔案,相容ios7/8

- 使用launchscreen.xib,功能更強大,但是僅支援ios8,可能再過幾年可以成為主流方法

同步IO 非同步IO 阻塞IO 非阻塞IO

同步io 非同步io 阻塞io 非阻塞io,這幾個詞常見於各種各樣的與網路相關的文章之中,往往不同上下文中它們的意思是不一樣的,以致於我在很長一段時間對此感到困惑,所以想寫一篇文章整理一下。posix 可移植作業系統介面 把同步io操作定義為導致程序阻塞直到io完成的操作,反之則是非同步io按pos...

阻塞IO, 非阻塞IO, 同步IO,非同步IO介紹

一 前言 1 我們之前講了io操作什麼時候切換回來呢?我們剛剛講了 函式,這個 函式是當你的程式一遇到io操作,再一切換,這個切換的時候,切換之前你等著io操作完了再回來。2 io 為什麼不阻塞吶?因為io操作是用作業系統完成的,咋們使用者讀乙個檔案,你以為自己的程式開啟乙個檔案,然後去把檔案的內容...

磁碟IO 快取IO與直接IO

檔案系統io分為directio和bufferio,其中bufferio也叫normal io。快取i o又被稱作標準i o,大多數檔案系統的預設i o操作都是快取i o。在linux的快取i o機制中,資料先從磁碟複製到核心空間的緩衝區,然後從核心空間緩衝區複製到應用程式的位址空間。讀操作 作業系...