我可能误解了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原点的值增加。
变换使用视图的中心作为锚点。结果是中心保持不变,如果我正确计算但是原点会移动(如果你按比例缩小则增加值,如果你按比例增加则减少),应为(442.5,65,75)。如果你想保留原点,有各种技术可以改变锚点,也许看一下这个帖子:Scale with CGAffineTransform and set the anchor
我认为转换必须适用于rect的中心。
我不知道属性的类型是什么。也许在属性中有一些叫做anchor
的东西。您可以尝试更改属性。