#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 называются по-разному, что, похоже, мне не нужно делать. Спасибо.