Я сообщил об ошибке Apple об этом с середины ноября 2014 года, и я только заметил, что они отметили его как «Нет ценности» ..., что дает мне впечатление, что Apple специально не выпустила дополнительный слот для iPhone 6. Я предполагаю, что теперь они хотят, чтобы слот 2x использовался для iPhone 6, и, возможно, они уменьшают поддержку iPhone 4, поскольку он стареет.
Если вы действительно хотите сохранить поддержку IPhone 4S, я предлагаю использовать iPhone 6 размера изображения в слоте 2 раза, а затем использовать следующий метод для загрузки изображений:
+(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) не теряет много качества, даже если аспектный рацион не то же самое.
возможно дубликат [Xcode 6 конкретного устройства актива Каталог] (http://stackoverflow.com/questions/25954706/xcode-6-device-specific-asset-catalog) –