1:Xcode6在iPhone5+iOS7模擬器上編譯,上下有黑邊問題
問題描述:
Xcode6環境下,對iPhone5或iPhone5s模擬器,在iOS7或iOS7.1下運行,屏幕上下有黑邊。在iOS8下沒問題。
問題分析:
這種熟悉的場景又出現了,上一次遇到這種情景已經可以追溯到兩年前,iPhone5剛剛問世的那段時間,在3.5inch屏幕上的程序如果不添加568h的default.png,在4inch屏上運行就會出現這種上下留"白"的狀況。
而如今已經到了iPhone6和iPhone6Plus的時代,這種情景竟然又出現了。
其實可以發現,不只是上下留白的問題,在這種狀態下Launch Screen其實根本沒有加載。
原因可想而知了。
Xcode6在Xcode5的基礎上,做出的一些調整,其實并不是向下兼容的。Xcode5在啟動頁通過images asset進行管理,而到了Xcode6,蘋果引入了一種新的啟動頁機制:LaunchScreen.xib,而這種機制恰恰是不向下兼容的。Xcode6已經自動為iPhone6以上的模擬器強制使用iOS8+系統,iPhone 6 (7.1)這種模擬器是不存在的(至少我沒有找到),因此對于iPhone 6以上的模擬器,不存在這個問題,對于iPhone 4s模擬器,在iOS7.1下也僅僅是沒有加載LaunchScreen.xib,這種蘋果最為古老的屏幕尺寸當然不存在留白的狀況。但對于iPhone5/5s + iOS7/7.1,由于iOS7無法兼容LaunchScreen.xib這種機制,而又找不到對應的default-568h.png文件,問題自然就出現了。
問題解決:
在項目配置頁,General下面有一欄App Icons and Launch Images,其中有一項Launch Images Source,如果你遇到了問題,那么旁邊顯示的可能是一個按鈕,Use Asset Catalog,點一下然后確定就可以了,會在項目中的Images.xcassets中生成LaunchImage,就像Xcode5中那樣。此時再運行程序,已經不會再有上下的黑邊問題了。但為了更好的用戶體驗,做張圖片放進去吧。當然,在iOS8中依然會加載LaunchScreen.xib,看來至少二者是可以共存的。
問題延伸:
如果你想刪掉這套啟動圖,僅僅是刪除Images.xcassets中的LaunchImage是不行的,還要在項目配置,Build Settings中找到Asset Catalog Launch Image Set Name(搜索asset可以幫你快速定位到這項),把后面的值刪掉。否則編譯都通不過,會報錯Images.xcassets: None of the input catalogs contained a matching launch image set named "LaunchImage"。
?
2:coco2d-x 游戲分辨率適配 ResolutionPolicy::FIXED_WIDTH 都會引起上下黑邊問題
? ? ?如果不排除上面那個問題,再弄cocos2d-x的游戲分辨率適配問題,就是蛋疼... !!! ? 在解決這個問題的時候,被上面那個問題坑了很久...!!!,一直以為是cocos2d-x的游戲代碼寫的有問題... ?
?
?
?
?