我可能会误解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原点的值增加了。
答案 0 :(得分:1)
转换将视图的中心用作锚点。结果是中心保持不变,如果我计算正确,则原点应该是(442.5,65,75),但是原点会移动(如果按比例缩小,则值增加,而按比例放大,则值减少)。如果要保留原点,可以使用多种技术来更改锚点,也许请看一下此线程:Scale with CGAffineTransform and set the anchor
答案 1 :(得分:0)
我认为转换必须应用于rect的中心。
我不知道什么是属性类型。也许在属性内部有一个叫做anchor
的东西。您可以尝试更改属性。