#iphone #rotation #cgaffinetransform #affinetransform #distortion
#iPhone #поворот #cgaffinetransform #affinetransform #искажение
Вопрос:
Я использую шаблон на основе представления для создания своего приложения и возвращаю YES в shouldAutorotateToInterfaceOrientation для поддержки автоматического поворота. Затем я добавляю квадратный объект testView_ (с настройкой автоматического изменения размера по умолчанию) и поворачиваю его при инициализации:
- (void)viewDidLoad {
[super viewDidLoad];
testView_.transform = CGAffineTransformMakeRotation(0.1);
}
Теперь, всякий раз, когда я поворачиваю iPhone, testView_ будет искажен. В чем причина и как ее исправить? Ширина и высота testView_ изменяются после каждого поворота iPhone, даже если он не должен быть автоматически изменен (и это происходит только в том случае, если testView_ повернут изначально).
Ответ №1:
Ну, наконец, мое решение состоит в том, чтобы сделать
testView_.transform = CGAffineTransformIdentity;
в методе willRotateToInterfaceOrientation затем повторите
testView_.transform = CGAffineTransformMakeRotation(0.1);
в didRotateFromInterfaceOrientation. Это помогает устранить искажения.
Это сложнее, если есть также перевод, масштабирование… это сложно, но идея в этом есть.