2015-07-29 3 views
2

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

Нечто подобное:

Портрет:

Кнопка 1 - Кнопка 2

Кнопка 3 - Кнопка 4

Пейзаж:

Кнопка 1 - Кнопка 2 - Кнопка 3 - Кнопка 4

Я не знаю, если следующий способ является лучшим:

[[NSNotificationCenter defaultCenter] addObserver:self 
         selector:@selector(didRotate:) 
         name:UIDeviceOrientationDidChangeNotification 
         object:nil]; 
- (void) didRotate:(NSNotification *)notification{ 
    UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation]; 
    if (orientation == UIDeviceOrientationLandscapeLeft) { 
     HERE CHANGE THE CONSTRAINS 
    } 
} 

Спасибо за все.

ответ

1
You can do this with using Size Class. i did this... 
1. First Desigh Screen in wAny - hAny and set all Constrains 
2. For Portrait select wCompact - hRegular and go to Size inspector 
3. In Descendant Constrains there are many Constrains select one by one (double click on that) 
4. you can see two + button. perss it and select wCompact - hRegular. it shownew field set Constrains (Size). do this for all Constrains. 
5. Now for Landscape in storybord select wRegular - hCompact and do this same... 

это работа, как если бы - иначе, если условие ... если (портрет) {это} еще если (Landscape) {это}

0

Почему бы не использовать классы размеров? Класс размера - это свойство, применяемое к любому контроллеру вида или представления, который представляет объем содержимого, который может отображаться в заданном горизонтальном или вертикальном измерении. С iOS8 доступны классы классов. Уже почти 90% устройств используют iOS8, но, конечно, это зависит от ваших требований.

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/LayoutandAppearance.html

Если вы хотите поддерживать старые версии IOS, ваш подход тоже хорошо.

+0

Спасибо! еще один вопрос. В классах размера, каковы w и h для пейзажа? –

+0

Это зависит от устройства. Это отличается от iPad и iPhone. Когда вы используете автозапуск, вы не должны уделять этому слишком много внимания. В этом учебнике http://www.raywenderlich.com/83276/beginning-adaptive-layout-tutorial есть глава, касающаяся классов размеров. Приятно иметь хорошее понимание классов автоопределения/размера, прежде чем вы начнете внедрять. –