Вращение UIView через свойство "transform" портится при изменении ориентации - PullRequest
3 голосов
/ 08 октября 2010

Я пытаюсь создать приложение для iPad, но на симуляторе наблюдается сомнительное поведение (пока не может быть протестировано на устройстве ..).

Проблема заключается в том, что любой UIView поворачивается через свое свойство transform, а затем разрешает манипулировать видом, содержащим его, путем изменения ориентации iPad. Это можно упростить, создав новый проект iPad на основе View и вставив следующий код в контроллер представления:

- (IBAction) rotate:(UIView*)sender {
 if (CGAffineTransformIsIdentity(sender.transform)) {
  sender.transform = CGAffineTransformMakeRotation(M_PI / 4);
 } else {
  sender.transform = CGAffineTransformIdentity;
 }
}

Затем добавьте одну кнопку в представление и свяжите ее действие с помощью вышеуказанного метода.

Как видите, метод должен поворачивать кнопку при нажатии, а затем отменять поворот при повторном нажатии - и это именно так. Однако, когда кнопка поворачивается, и вы меняете ориентацию (из меню «Оборудование»), она начинает действовать очень странно - изменяя свою форму или вообще исчезая.

Стоит отметить, что если я создаю преобразование преобразования, этого не произойдет.

Мой вопрос:

1. Поскольку у меня нет iPad в данный момент (работает над этим), кто-нибудь может сказать мне, если это произойдет и на устройстве? 2. Я что-то здесь не так делаю? Может быть, это не способ повернуть UIView? Если да, то что?

Обновление : Из документации видно, что Если свойство [transform] не является преобразованием идентичности, значение свойства frame не определено и поэтому должно игнорироваться. Так что проблема, вероятно, заключается в том, что я использую autoresizeMask при изменении свойства transform . Так, как это можно или нужно сделать?

Спасибо, Aviad.

1 Ответ

0 голосов
/ 04 ноября 2011

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

Надеюсь, я правильно помню это.

...