我正在构建一个可以旋转和调整大小的自定义UIView
。我可以通过拖动UIView
的角来调整UIView
的大小。我计算了拖动了多少,然后相应地更改了UIView
的框架。
然而,一旦我向视图添加了旋转手势识别器,我就遇到了问题。如果我旋转或应用变换到视图,我不再知道如何计算拖动距离并更改视图的框架。当事物以增加的角度放置或者如果它们有其他变换(如平移变换)时,我如何计算新视图和原始视图之间的宽度和高度变化?
我想到了将视图的变换设置回.identity
的可能性,更改视图的大小,然后重新应用其变换,但我不确定如何实际执行此操作。
答案 0 :(得分:0)
应用转换后,您无法使用frame
您有两个选择
1)首先使用视图的center
计算所有内容
2)如您所知,应用identity
并更改框架
对于第2点我添加了可能对您有帮助的示例
let transform = imageView.transform
imageView.transform = CGAffineTransform.identity
var rect: CGRect = imageView.frame
rect = // Change Rect here
imageView.frame = rect // Assign it
imageView.transform = transform // Apply Transform