Вопрос по uiview, iphone, core-graphics – Сброс происхождения трансформированного UIView спускается в сумасшествие

2

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

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

Update 1:

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

Update 2:

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

Ваш Ответ

2   ответа
1

документы:

transform:

Warning: If this property is not the identity transform, the value of the frame property is undefined and therefore should be ignored.

Свойство center является просто вспомогательным методом, который действительно сбрасывает происхождение фрейма.

Edit: добавлено, чтобы ответить на комментарий:

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

view.transform = CGAffineTransformTranslate(view.transform, tx, tx);
Я попытался перевести представление с помощью аффинного преобразования, но это создало много сложностей, которые требовали от меня манипулирования точкой привязки представлений. teabot
В каком случае - как я могу изменить представление? teabot
3

Документация определяетcenter свойство как:

The center of the frame.

и говорит:

The center is specified within the coordinate system of its superview.

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

Попробовал - все заработало. teabot

Похожие вопросы