У меня было много проблем при попытке принудительной загрузки версии с низким разрешением некоторых ресурсов на iOS, когда также присутствует версия с высоким разрешением (@ 2x).
Причина, по которой я хотел это сделать, проста: мое приложение показывает пользователю полноэкранные изображения (320x480 на старых устройствах, 640x960 на устройствах Retina), и пользователь может загрузить некоторые из них наTwitPic.Я хотел унифицировать загруженные изображения до 320x480, независимо от устройства (для согласованности, потому что этот размер подходит для веб-браузера).
Я обнаружил, что независимо от того, какой метод UIImage я использовал, когда высокий-resolution версия файла ресурса присутствует, он загружен (даже если вы передаете полный путь к файлу): UIImage перехитрит вас.Но я нашел способ превзойти UIImage:
- (UIImage*) lowResImage{
NSString* path = [[NSBundle mainBundle] pathForResource:_fileName
ofType:@"png"
inDirectory:_resourceSubdirectory];
path = [path stringByReplacingOccurrencesOfString:@"@@2x" withString:@""];
NSData* imageData = [[NSData alloc] initWithContentsOfFile:path];
UIImage* image = [[UIImage alloc] initWithData:imageData];
[imageData release];
return [image autorelease];
}
Приведенный выше код отлично работает на iPod touch 4-го поколения.
Кто-нибудь придумал лучший подход?