2012-11-04 2 views
1

Я использую раскадровку для своего приложения, и я пытаюсь сделать ее iPhone 5-совместимой. Тем не менее, включение Auto-Layout все испортит - изменения кадров позже в коде не работают и так далее ... Я могу сделать макет iPhone 5 полностью независимым от старого макета iPhone 4 и ниже (как создать отдельную раскадровку только для iPhone 5)?Сделать iPhone 5 Layout полностью независимым

Заранее благодарен!

+0

«кадр изменением позже код не работает и т. д. ». Использование автоматического макета означает использование ограничений для компоновки вашего интерфейса вместо изменения кадра. Вместо того, чтобы описывать точное положение каждого объекта, вы описываете такие вещи, как расстояние между объектами, или как объекты выравниваются друг с другом. Вы определенно не можете просто перевернуть переключатель в автоматическом макете и ожидать, что старый ручной код макета будет работать. Он также должен быть обновлен. –

+0

@ JonHess Да, я понимаю, что это был просто пример. Во всяком случае, я решил, в конце концов, пойти с авто-макета и вместо этого определил ограничение ширины, чтобы впоследствии изменить. Теперь он отлично работает. – gtmtg

ответ

2

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

#define IS_IPHONE_5 (fabs((double)[ [ UIScreen mainScreen ] bounds ].size.height - (double)568) < DBL_EPSILON) 

С этой макрокомандой, вы можете создать отдельную раскадровку для iPhone только 5, и инициализировать его в AppDelegate с этим

NSString *storyboardName; 
if (IS_IPHONE_5) 
    storyboardName = @"MainStoryboard_iPhone5"; 
else storyboardName = @"MainStoryboard_iPhone"; 
storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil]; 

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

  • Нет связанных вопросов^_^