2013-09-30 6 views
0

Я пытаюсь обеспечить поддержку как iOS7, так и iOS6 с помощью раскадровки. Я разработал собственный barbuttonitem для iOS7, который выглядит следующим образом:IOS 7/IOS 6 настраиваемая панель инструментов barbuttonitem

custom iOS7 barbuttonitem

Это выглядит просто отлично. Проблема заключается в том, как указать другое изображение для barbuttonitem для iOS6. Очевидно, что изображения iOS6 и iOS 7 должны быть разных размеров. Кнопка IOS 6 выглядит следующим образом:

iOS6 rendering of barbuttonitem

Как вы это делаете в раскадровке? Есть ли какое-то суффикс или соглашение об именах, позволяющее отличать изображение iOS7 от образа iOS6?

Спасибо Джим

ответ

0

Для чего-то в этом роде, вы, вероятно, нужно программно изменить внешний вид, основанный на работающей версии.

Я использовал что-то вроде этого:

#define IS_IOS_6 ([[UIDevice currentDevice].systemVersion hasPrefix:@"6"]) 
// or 
// #define IS_IOS_6 (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) 

if (IS_IOS_6) { 
    [self.barButtonItem setBackgroundImage:ios6Image forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
} else { 
    [self.barButtonItem setBackgroundImage:ios7Image forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
} 
+0

Да, это единственный способ сделать эту работу. Я также просмотрел каталог ресурсов изображения, и он не поддерживает разные параметры iOS для элементов панели. – svjim

0

Вы можете использовать это, чтобы загрузить другой образ, основанный на IOS версии.

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) { 

// Load resources for iOS 6.1 or earlier 

} 

else { 

// Load resources for iOS 7 or later 

} 
Смежные вопросы