2010-07-10 2 views
0

Я вижу несколько вопросов об этом здесь, но я не могу понять, что именно точно Я должен сделать для реализации вращения UIViews.UIView ipad rotation

У меня есть два параметра по умолчанию для режима «Пейзаж» и «Портрет», но как вид знает, что в определенное время он должен повернуть свой контент? Какие методы я должен реализовать, и что позволяет мне изменять ориентацию, когда устройство поворачивается/меняет ориентацию, когда приложение запускается с устройством, не имеющим ориентацию по умолчанию?

Я должен реализовать также обратный вызов для уведомления об изменении ориентации? И если да, как я могу все это сделать?

Мне просто нужна четкая информация. Я немного смущен.

Спасибо заранее, -Albé

ответ

2

Я думаю, что вы могли бы искать на самом деле на UIViewController. См. Responding to View Rotation Events в ссылке на класс, и, конечно, View Controller Programming Guide. Экземпляр контроллера просмотра получит эти сообщения от ОС, поскольку он контролирует состояние устройства, и это стандартный рецепт для реагирования на изменение ориентации основного устройства.

Если по какой-либо причине вы определяете, что эта простая, родная функциональность для вращения неадекватна для вас, вы, конечно, можете манипулировать UIView, как вам нравится. Это подробно описано в Core Animation Programming Guide, по сути, вы манипулируете геометрией, изменяя преобразование слоя с помощью таких функций, как CATransform3DMakeRotation.

This SO article имеет хорошую информацию о лучших практиках.

+0

Благодарим за очень быстрый и полезный ответ. – Donovan

1

Вот метод, который я использую в универсальном приложении (iPad и iPhone). Моя версия iPhone не меняет ориентацию, но версия для iPad делает это. Проверка UIInterfaceOrientationPortrait может быть избыточной.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
     return YES; // supports all orientations 
    } 
    if (interfaceOrientation == UIInterfaceOrientationPortrait) { 
     return YES; 
    } 
    return NO; 
} 

Этот метод подходит ко всем представлениям, что я хочу поддерживать вращение.

Существует также ключ в Info.plist для общего и IPad вращения. Версия для iPad: UISupportedInterfaceOrientations~ipad

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