可调整大小的UIView

时间:2017-08-21 17:43:17

标签: ios swift uiviewanimation

我正在构建一个可以旋转和调整大小的自定义UIView。我可以通过拖动UIView的角来调整UIView的大小。我计算了拖动了多少,然后相应地更改了UIView的框架。

然而,一旦我向视图添加了旋转手势识别器,我就遇到了问题。如果我旋转或应用变换到视图,我不再知道如何计算拖动距离并更改视图的框架。当事物以增加的角度放置或者如果它们有其他变换(如平移变换)时,我如何计算新视图和原始视图之间的宽度和高度变化?

我想到了将视图的变换设置回.identity的可能性,更改视图的大小,然后重新应用其变换,但我不确定如何实际执行此操作。

1 个答案:

答案 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