0

我可能误解了 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)

宽度和高度比例正确,但 x 和 y 原点的值增加了。

4

2 回答 2

1

变换使用视图的中心作为锚点。结果是中心保持不变,如果我计算正确,应该是 (442.5, 65,75),但原点会移动(如果缩小,值会增加,如果放大,则值会减小)。如果你想保持原点,有多种技术可以改变锚点,也许看看这个线程:Scale with CGAffineTransform and set the anchor

于 2019-03-27T09:50:30.200 回答
0

我认为变换必须应用于矩形的中心。
我不知道属性的类型是什么。也许有一种叫做anchor内部属性的东西。您可以尝试更改属性。

于 2019-03-27T09:46:34.337 回答