Изображение UIImageView исчезает при изменении изображения - PullRequest
1 голос
/ 08 мая 2011

При изменении изображения в UIImageView в коде изображение исчезает.Это происходит только на устройстве iPod Touch, а не на эмуляторе iPhone.

В моем комплекте есть изображение с именем SomeImage.PNG

NSString *path = [[NSBundle mainBundle] pathForResource:@"SomeImage" ofType:@"png"];
[self.background setImage:[[UIImage alloc] initWithContentsOfFile:path]];

Я должен повторить, это прекрасно работает наСимулятор iPhone, но не на устройстве iPod Touch.

Обратите внимание, что файл изображения имеет расширение в верхнем регистре, но в моем коде он объявлен в нижнем регистре.Это проблема.Поэтому, чтобы решить проблему, измените код следующим образом:

NSString *path = [[NSBundle mainBundle] pathForResource:@"SomeImage" ofType:@"PNG"];
[self.background setImage:[[UIImage alloc] initWithContentsOfFile:path]];

Я спрашиваю, есть ли «лучший» способ сделать то, что я делаю, поэтому я не сталкиваюсь с такими проблемами вбудущее.

1 Ответ

1 голос
/ 09 мая 2011

Не совсем. К сожалению, файловая система iOS чувствительна к регистру.

Как то так .....?

NSString *filename = @"SomeImage";
NSString *extension = @"png";
UIImage *img = nil;
NSString *path = nil;

path = [[NSBundle mainBundle] pathForResource:filename ofType:[extension lowercaseString]];
img = [[UIImage alloc] initWithContentsOfFile:path];

if (img == nil) {
    path = [[NSBundle mainBundle] pathForResource:filename ofType:[extension uppercaseString]];
    img = [[UIImage alloc] initWithContentsOfFile:path];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...