iphone - странное поведение, когда я устанавливаю кадр UIImageView, пока находится в анимации CGAffineTransformMakeScale - PullRequest
0 голосов
/ 26 июля 2011

У меня есть UIImageView, показывающий изображение с contentMode из UIViewContentModeScaleAspectFill.

Затем я связываю анимацию (около 30 секунд) CGAffineTransformMakeScale с UIImageView.

imageView.transform = CGAffineTransformMakeScale(1,1);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:30];
imageView.transform = CGAffineTransformMakeScale(1.9,1.9);
[UIView commitAnimations];

Через 30 секунд после завершения цикла анимации я установлю другое изображение наimageView и перезапустите анимацию.

Все хорошо.Но когда я пытаюсь повернуть UIImageView, чтобы адаптировать пользовательский выбор ориентации устройства, он становится проводным.

Когда пользователь собирается изменить ориентацию, я устанавливаю для фрейма UIImageView значение CGRectMake (0, 0, 768, 1004) или CGRectMake (0, 0, 1024, 748), соответственно.

Странная вещь:

, если во время анимации изменяется кадр UIImageView, это нормально.Но когда приходит следующее изображение и начинается новый цикл анимации, UIImageView внезапно стал маленьким в центре экрана (предполагается, что это полноэкранный режим), а затем анимация увеличения началась, как обычно, просто больше не на весь экран..

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

Потому что я думаю, что именно здесь все пошло не так.

Спасибо

Ответы [ 2 ]

6 голосов
/ 26 июля 2011

Квот документация для свойства frame:

Предупреждение: Если свойство преобразования не является преобразованием идентичности, значение этогосвойство не определено и, следовательно, должно игнорироваться.

Возможно, вам придется возиться с center и bounds, если вы используете преобразования.

1 голос
/ 26 июля 2011

Свойство Frame не определяется при преобразовании.В этом случае используйте границы вместо рамки.

...