CGAffineTransform未正确缩放原点

问题描述 投票:0回答:2

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

ios uicollectionviewlayout cgaffinetransformscale
2个回答
1
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.