CGAffineTransform неправильно масштабирует источник - PullRequest
0 голосов
/ 27 марта 2019

Возможно, я неправильно понимаю, как работает CGAffineTransform, но, похоже, он дает странные результаты для источника кадра.

например:

        print(attribute.frame)
        attribute.transform = CGAffineTransform(scaleX: 0.68, y: 0.68)
        print(attribute.frame)

дает результаты:

(213,0, 54,0, 459,0, 23,5)

(286,29948979591836, 57,75280612244898, 312,4010204081633, 15.994387755102032)

Правильно масштабируется ширина и высота, но начало координат х и у увеличилось.

Ответы [ 2 ]

1 голос
/ 27 марта 2019

Преобразование использует центр вашей точки зрения в качестве точки привязки.Результатом является то, что центр остается прежним, должен быть (442,5, 65,75), если я правильно рассчитать, но источник будет двигаться (увеличьте значение, если вы уменьшите, и уменьшите, если вы увеличите).Существуют различные методы изменения точки привязки, если вы хотите сохранить исходную точку, возможно, взгляните на этот поток: Масштабируйте с помощью CGAffineTransform и установите привязку

0 голосов
/ 27 марта 2019

Я думаю, что преобразование должно быть применено к центру прямоугольника.
Я не знаю, какой тип атрибута.Может быть, внутри атрибута что-то называется anchor.Вы можете попытаться изменить свойство.

...