Выборочная загрузка ресурсов низкого разрешения в iOS при наличии @ 2x-версии - PullRequest
1 голос
/ 29 августа 2011

У меня было много проблем при попытке принудительной загрузки версии с низким разрешением некоторых ресурсов на 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-го поколения.

Кто-нибудь придумал лучший подход?

1 Ответ

2 голосов
/ 29 августа 2011

Создайте свой путь, откройте данные, а затем запустите изображение, используя данные, как в примере ниже.


   NSString *dataPath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:_fileName];
   NSData *data = [[NSData alloc] initWithContentsOfFile:dataPath];
   UIImage *image3 = [UIImage imageWithData:data];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...