2009-06-26 4 views
2

Я вращаю/масштабирую UIVIew с помощью [UIView transform:], и это хорошо работает. Однако, как только я изменяю исходный код представления, содержимое представления начинает масштабироваться «странно», хотя я не выполняю никаких других CGAffineTransforms.Сброс источника трансформированного UIView сходит с ума.

Почему это происходит? Как я могу это предотвратить?

Update 1:

Документы предполагают, что кадр является недействительным после преобразования. Могу ли я переместить представление через его свойство «center»?

Update 2:

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

ответ

3

Могу ли я переместить вид через его свойство «центр»?

The documentation определяет свойство center как:

центре кадра.

и говорит:

Центр задается в системе координат ее надтаблицы.

Я бы попробовал.

+0

Пробовал - это сработало. – teabot

1

С UIView docs:

преобразования:

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

Свойство центра - это только метод удобства, который действительно сбрасывает начало кадра.

Edit: прилагается ответить комментарий:

Если вы с помощью свойства преобразования и хотите изменить ваш взгляд, вы должны сцепить перевод на ваш преобразования с помощью:

view.transform = CGAffineTransformTranslate(view.transform, tx, tx); 
+0

В каком случае - как изменить положение? – teabot

+0

Я попытался перевести представление с аффинным преобразованием, но это создало множество осложнений, которые потребовали от меня манипулирования точкой привязки к точкам. – teabot

Смежные вопросы