Я пытаюсь создать приложение для 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.