UIView Ipad вращение - PullRequest
       4

UIView Ipad вращение

0 голосов
/ 10 июля 2010

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

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

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

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

Заранее спасибо, Альбе

Ответы [ 2 ]

2 голосов
/ 10 июля 2010

Я думаю, что вы можете искать на самом деле на UIViewController. См. Ответ на просмотр событий поворота в справочнике классов и, конечно, Руководство по программированию View Controller . Ваш экземпляр контроллера представления будет получать эти сообщения от ОС, поскольку он отслеживает состояние устройства, и это стандартное предписание для реагирования на базовое изменение ориентации устройства.

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

Эта статья SO содержит полезную информацию о лучших практиках.

1 голос
/ 10 июля 2010

Вот метод, который я использую в универсальном приложении (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

...