2014-10-09 2 views
0

Я делаю свое первое универсальное приложение, используя xcode6 с одним storyBoard. Обычно у меня есть два storyBoards - один для iPhone и один для iPad. Каждый storyBoard имел бы соответствующие изображения.xcode6 одна раскадровка, но разные изображения

Но теперь, если у меня есть UIImage в качестве фона на iPad, как я могу иметь различный uiImage на iPhone?

ответ

1

Решение # 1)

Вы можете использовать "UI_USER_INTERFACE_IDIOM" условное, чтобы помочь вам.

Основываясь на code in this answer, все вам нужно сделать, это установить UIImage к розетке, а затем сделать что-то вроде:

- (BOOL) isPad{ 
#ifdef UI_USER_INTERFACE_IDIOM 
    return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad); 
#else 
    return NO; 
#endif 
} 

if([self isPad]) 
{ 
    //do code for iPad 
    [self.backgroundImageView.image = [UIImage imageNamed:@"bigBackgroundImage"]; 
} 
else 
{ 
    //do code for iphone 
    [self.backgroundImageView.image = [UIImage imageNamed:@"smallerBackgroundImage"]; 
} 

Solution # 2)

Вы можете действительно все еще используют отдельные раскадровки для iPad и iPhone.

Для этого вам необходимо отредактировать файл info.plist вашего приложения, чтобы показать два разных файла раскадровки для iPad и iPhone. В Xcode 6.1, это выглядит следующим образом:

Two Separate Storyboard possiblities in the Info.plist file

или, если вы редактируете файл Info.plist напрямую, вы бы вынуть оригинальный ключ UIMainStoryboardFile` и значение и вставить эти два вместо этого (переименовать файлы, которые вы хотите, чтобы они были ...)

<key>UIMainStoryboardFile~ipad</key> 
<string>nameOfiPadStoryboard</string> 
<key>UIMainStoryboardFile~iphone</key> 
<string>nameOfiPhoneStoryboard</string> 
+0

Спасибо за ваше предложение. Но я думаю, что я пропущу, увидев представление двух фонов на каждом устройстве storyBoard. Можно ли еще реализовать 2 раскадровки с помощью Xcode6 ?? – pete

+0

plus - если бы я использовал «UI_USER_INTERFACE_IDIOM», мне нужно было бы настроить разные размеры кадров для каждого устройства? – pete

+0

Да, до сих пор можно реализовать две раскадровки с Xcode 6. И я добавил скриншоты и инструкции, объясняющие, как это сделать. –

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