Есть ли способ проверить, какой файл был загружен в объект UIImage?

#objective-c #ios #xcode

#objective-c #iOS #xcode

Вопрос:

У меня есть три файла: background ~ ipad.png, background @ 2x ~ iphone.png amp; background ~ iphone.png

Когда я устанавливаю фоновое изображение, я использую:

[self.background setImage:[UIImage imageNamed:@"background.png"]];

Есть ли какой-либо способ для меня проверить, что background @ 2x ~ iphone.png является файлом, загружаемым при запуске симулятора экрана retina? Потому что это выглядит (визуально) так, как будто загружается background ~ iphone.png

Ответ №1:

Попробуйте временно изменить содержимое изображений, чтобы убедиться, что загружено правильное изображение. Например, сделайте фон ~ ipad.png сплошным синим, а фон ~ iphone.png сплошным зеленым. Таким образом, вы увидите, загружен ли правильный.

Ответ №2:

Вы могли бы проверить размер изображения перед его установкой:

 UIImage *backgroundImage = [UIImage imageNamed:@"background.png"];

NSLog(@"%@",NSStringFromCGSize(backgroundImage.size);

[self.background setImage:backgroundImage];
  

Кроме того, я бы удалил расширение ~ iphone, просто использовал background и background @ 2x, затем либо использовал ~ ipad, либо использовал макрос UI_USER_INTERFACE_IDIOM () для обнаружения iPad и установки совершенно другого изображения.

Комментарии:

1. Спасибо, но почему лучше определять платформу программно? Сама Apple выступает за использование расширений имен файлов. developer.apple.com/library/IOS/#documentation/Cocoa/Conceptual /…

2. Вы правы, в этом случае я беру свои слова обратно. Обычно у меня все изображения на iPad называются по-разному, что, похоже, мне не нужно делать. Спасибо.