CGAffineTransformRotate в viewDidLoad растягивает / искажает UIImageView - PullRequest
4 голосов
/ 06 июля 2011

Мне нужно повернуть на заданный угол UIImageView, созданный Интерфейсным Разработчиком при загрузке представления.

- (void)viewDidLoad
{
   [super viewDidLoad];
    image.transform = CGAffineTransformRotate(image.transform, REF_INIT_OFFSET*M_PI/180); 
}

Это поворачивает изображение, но последнее полностью искажается и растягивается.Если REF_INIT_OFFSET кратен 90, он работает отлично!

Вот как должна выглядеть картинка (обратите внимание на стрелку, указывающую на «0»)

enter image description here

и вот как она на самом деле выглядит:

похоже, что изображение растянуто в неправильном направлении.

Вы понимаете, что не так?

спасибо,

1 Ответ

7 голосов
/ 06 июля 2011

Не уверен, что это вам поможет, но у меня была такая же проблема после [UIImage setFrame:], если UIImage был преобразован, решение было использовать setBounds вместо setFrame

Решение проблемы по обсуждению в комментариях:

Метод setFrame вызывается после viewDidLoad в shouldAutorotateToInterfaceOrientation неявно, если свойство autoresizesSubviews YES

- (void)viewDidLoad {
[super viewDidLoad];
self.view.autoresizesSubviews=NO;
image.transform = CGAffineTransformRotate(image.transform, 50*M_PI/180);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...