Монотачный поворот просмотра в портретной / альбомной ориентации

Может ли кто-нибудь привести пример, как повернуть вид приложения с монотачем с портретной на альбомную и наоборот?


person Tim Bassett    schedule 04.10.2009    source источник


Ответы (3)


Если вы устанавливаете геометрию элементов пользовательского интерфейса в Интерфейсном Разработчике, убедитесь, что вы установили атрибуты Автоматическое изменение размера в Инспекторе размеров (Cmd + 3). Затем вы можете увидеть, как будет выглядеть вид после поворота, нажав маленькую кнопку «Повернуть» в верхнем левом углу строки заголовка вашего представления в Интерфейсном Разработчике.

После того, как вы все это настроили, просто переопределите следующий метод в своем ViewController:

public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)
{
    return true;
}

Теперь в симуляторе вы можете вращать все, что хотите, и ваш пользовательский интерфейс автоматически адаптируется.

person Frank Krueger    schedule 01.11.2009
comment
Боже, я не мог поверить, насколько это просто! :) Это обязательно нужно отметить как правильный ответ. Спасибо. - person BruceHill; 05.06.2012

Чтобы все знали, теперь он находится в объекте View Transform:

View.Transform.Rotate(3.14159f * 0.5f);

Для всех вас, таких как я, дотнетистов, которые не хотят использовать ничего, что есть CGAffineTransform, думая, что это сломает другие вещи, просто попробуйте. Отлично поработал для моего экземпляра. Повернул NavigationController.View, и все внутри него идеально.

person Chuck Pinkert    schedule 22.07.2011
comment
это вращает только одно конкретное представление, если оно внутри UINavigationController, панель управления навигацией будет на неправильной стороне экрана. - person Timothy Groote; 18.11.2011

Это то, что вы можете попробовать.

Если вы хотите изменить ориентацию вида, касаясь его, выполните следующие действия.

  1. Реализуйте метод touchesBegan внутри представления.

  2. В методе touchBegan проверьте текущую ориентацию устройства, [[UIDevice currentDevice] orientation];

  3. Если вы хотите изменить ориентацию, используйте метод CGAffineTransformation в представлении как viewRef.transform = CGAffineTransformMakeRotation(angle);

person Biranchi    schedule 05.10.2009