CGAffineTransform无法正确缩放原点

时间:2019-03-27 09:36:40

标签: ios uicollectionviewlayout cgaffinetransformscale

我可能会误解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原点的值增加了。

2 个答案:

答案 0 :(得分:1)

转换将视图的中心用作锚点。结果是中心保持不变,如果我计算正确,则原点应该是(442.5,65,75),但是原点会移动(如果按比例缩小,则值增加,而按比例放大,则值减少)。如果要保留原点,可以使用多种技术来更改锚点,也许请看一下此线程:Scale with CGAffineTransform and set the anchor

答案 1 :(得分:0)

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