我有一個在iPhone和iPad上運行的應用程序,大多數此應用程序的預期設備將是除iPad mini外的視網膜設備。我有很多圖像包含在這個應用程序中。 我的問題是,如果我決定只使用@ 2x圖像,iOS會將它們降級到非視網膜設備嗎?所以我只運送視網膜圖像?如果這是正確的,那麼實施它是一個壞主意?視網膜圖像,非視網膜設備
回答
iOS不會降級這些圖像。但是,如果您仔細設置圖像瀏覽的框架,它不會產生任何問題。
真的嗎?它不會降級?它通常會從非視網膜升級到視網膜圖像?我可以強制降級嗎? –
不,它不會降級或升級。但是如果你的畫面很小而且圖像很大,那麼它可以容納較小畫面中的較大圖像,反之亦然。 – Apurv
如果你的圖像視圖有contentMode =擴展您的圖像將被調整到非視網膜
正常顯示,但有一些問題:
1)對非Retina如果顯示縮放視網膜圖像設備您將有圖像邊緣模糊。所以如果你想使用這個圖像的UI - 這將是一個壞主意。
2)有時Xcode的故事板不一樣,如果你只有@ 2倍的圖像(例如,在uibuttons)規模的正確圖像
如果您在Interface Builder將圖像生成,並設置在圖像屬性上UIImageView
以[email protected]
爲例,iOS不會知道它是高分辨率的「2x」圖像。事實上,在視網膜顯示屏上,iOS會查找名爲[email protected]@2x.png
的圖像。由於它不會找到它,它會將圖像的比例因子設置爲1.0。
contentMode
屬性(只是XCode中的「模式」)將決定是否出現圖像的任何縮放以適合UIImageView的約束。您可能希望將模式設置爲「Aspect Fit」,以便根據視網膜和非視網膜顯示屏的需要縮放高分辨率圖像。一般情況下,圖像將如Interface Builder中所示顯示。
如果你正在使用UIImage的imageNamed
或類似的函數來加載圖像,並只指定image
(其中「image.png」不存在,但「[email protected]」),那麼iOS會真正找到在非視網膜顯示器上的圖像,儘管比例因子將爲1.0。如前所述,您需要將其縮放以適合您的視圖。該圖像將在視網膜設備上正常工作,並且比例因子將被設置爲2.0,因爲iOS首先查找「2x」圖像,而其他文件是否存在則無關緊要。
這是來自Apple的文檔上imageNamed
:
在運行iOS 4或更高版本的設備,該行爲是相同的,如果 設備的屏幕具有1.0的比例。如果屏幕的比例爲2.0,,則此方法首先搜索具有相同文件名的圖像文件 並附加@ 2x後綴。例如,如果文件的名稱是 按鈕,它首先搜索按鈕@ 2x。如果它找到一個2倍,它將加載 該映像並將返回的UIImage對象 的scale屬性設置爲2.0。否則,它加載未修改的文件名並將比例 屬性設置爲1.0。有關支持具有不同比例因子的圖像的 的更多信息,請參閱iOS應用程序編程指南。
如果可能的話,你應該包括視網膜和非視網膜圖像。使用比所需更高分辨率的圖像會對內存和性能產生負面影響。
- 1. 如何使可在視網膜和非視網膜設備來使用視網膜準備圖像
- 2. 在視網膜和非視網膜設備上的renderInContext
- 3. 知道設備類型 - 視網膜/非視網膜
- 4. 按鈕圖像命名爲許多設備(視網膜和非視網膜)
- 5. 繪圖視網膜與非視網膜圖像
- 6. 視網膜與非視網膜iOS
- 7. UIImageView中的視網膜/非視網膜圖像
- 8. 僅支持帶視網膜圖像的iPad非視網膜
- 9. 視網膜上的非視網膜圖像iPad
- 10. 視網膜圖形與非視網膜圖形管理
- 11. 視網膜和非視網膜精靈的獨立gulp.spritesmith設置
- 12. 視網膜和非視網膜顯示屏支持圖形
- 13. 可以在視網膜上使用非視網膜圖形嗎?
- 14. Cocos2d中的視網膜和非視網膜圖形
- 15. 創建視網膜屏幕截圖編程導致非視網膜圖像
- 16. 非視網膜圖像有多重要?
- 17. 視網膜圖像中視網膜模擬器
- 18. CSS resize視網膜圖像
- 19. 視網膜圖像問題
- 20. iOS應用程序非視網膜和視網膜圖像概念
- 21. 將圖像用於視網膜和非視網膜屏幕上的文字
- 22. 如何製作UIImageView加載視網膜和非視網膜圖像
- 23. UIAlertView中的圖像:CGRectMake在視網膜和非視網膜中iPhone
- 24. 視網膜版本的圖像總是用在非視網膜顯示
- 25. CSS視網膜和非視網膜媒體查詢
- 26. 視網膜模擬器顯示非視網膜分辨率
- 27. 微分視網膜和非視網膜顯示器的iOS
- 28. UIImageView contentMode在視網膜和非視網膜顯示不同
- 29. 視網膜和非視網膜兼容UIImage堆疊和定位
- 30. 更新非視網膜帆布應用視網膜顯示
我從一個叫做「rescale @ 2x」的地方獲得了一個小小的Mac工具。它需要您的@ 2x圖像併爲它們創建「正常」副本,因此您可以同時擁有這兩個副本。 –