Xcode爲1x,2x,4「2x和3x資產提供資產桶。我的全屏資產在這種配置下都很順利,因爲2x存儲桶用於3.5英寸和4.7英寸的屏幕。目前我有一個反映當前屏幕尺寸的UIImage類別,如果設備看起來是3.5英寸,則選擇「* -3.5」資產。Xcode資產目錄支持3.5英寸,4英寸和4.7英寸@ 2x圖像?
這是笨重的,而且不酷。設備尺寸爲他們的LaunchImage資產,我希望有一種方式來提供非啓動圖像資產的設備特定資產,而不訴諸代碼。
Xcode爲1x,2x,4「2x和3x資產提供資產桶。我的全屏資產在這種配置下都很順利,因爲2x存儲桶用於3.5英寸和4.7英寸的屏幕。目前我有一個反映當前屏幕尺寸的UIImage類別,如果設備看起來是3.5英寸,則選擇「* -3.5」資產。Xcode資產目錄支持3.5英寸,4英寸和4.7英寸@ 2x圖像?
這是笨重的,而且不酷。設備尺寸爲他們的LaunchImage資產,我希望有一種方式來提供非啓動圖像資產的設備特定資產,而不訴諸代碼。
移動到Xcode 6和iOS 8時使用現有的項目會產生一些初始問題。我通過改變圖像從Device specific
設置Universal
解決了這個。這將刪除R4圖像選項,給你留下@1x
,@2x
和@3x
。如果使用例如背景需要適合屏幕的圖像,然後我會建議您找到一張不必完全適合看起來很好的圖像,並將圖像設置爲顯示爲Aspect Fill
。
我已經向蘋果這個錯誤自十一月中旬2014年我只注意到他們將其標記爲沒有價值......這給我的印象蘋果已經省略了故意iPhone 6的額外插槽。我的猜測是他們現在希望將2個插槽用於iPhone 6,也許他們正在減少對iPhone 4s的支持,因爲它正在變老。
如果你真的想繼續支持iPhone 4S,我建議在2個插槽使用iPhone 6大小的圖像,然後用下面的方法來加載圖片:
+(UIImage *)loadImageNamed:(NSString *)imageName
{
CGSize screenSize = [UIScreen mainScreen].bounds.size;
CGFloat screenHeight = MAX(screenSize.width, screenSize.height);
CGFloat const IPHONE_4_SCREEN_HEIGHT = 480;
UIImage *image = [UIImage imageNamed:imageName];
if(screenHeight == IPHONE_4_SCREEN_HEIGHT) {
CGFloat const xScale = .85333333;//x conversion ratio from iPhone 6's 375 pts width screen to iPhone 4's 320 pts width screen
CGFloat const yScale = .71964018;//y conversion ratio from iPhone 6's 667 pts height screen to iPhone 4's 480 pts height screen
CGSize newSize = CGSizeMake(xScale * image.size.width, yScale * image.size.height);
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0);
[image drawInRect:(CGRect){0, 0, newSize}];
UIImage *resizedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return resizedImage;
}
return image;
}
重定即使長寬比不一樣,大圖像(iPhone 6)和較小圖像(iPhone 4)也不會損失太多質量。
我有same problem並得到了蘋果,我必須寫代碼,這個確認。例如,你可以嘗試這樣的Fullscreen images on iPhone 6 with Asset Catalogs
但其實我去偷懶一下它通過使用一個2X 4" & 4.7" 屏幕,另外2個3.5" 屏幕
[Xcode的6設備特定資產的
可能重複目錄(http://stackoverflow.com/questions/25954706/xcode-6-device-specific-asset-catalog) – 2014-10-06 16:19:35