在正在旋转的视图中获取子视图框架(CGAffineTransform)

时间:2017-10-03 18:47:49

标签: ios swift cgaffinetransform

我遇到了类似的问题,其解决方案已在此处提出: https://stackoverflow.com/a/16511494/3134192

我有一个包含内部视图的外部视图。外部视图使用CGAffineTransform旋转(正在进行的无尽动画)。我想计算相对于旋转外视图的内部视图的框架( - >实际显示的内部视图的框架,因为它与外部视图一起旋转)。

我不太了解convert()的这些UIKit方法。我从来没有得到它转换过的坐标系。此外,问题的解决方案对我不起作用,它给了我一个不正确的框架。

我很感激任何帮助。 谢谢!

1 个答案:

答案 0 :(得分:1)

所以听起来你有这样的情况:

enter image description here

内部视图的框架"相对于外部视图"根据定义,它的框架在其superview的坐标空间中指定,因此没有改变。所以也许你正在寻找相对于封闭的rootView的框架。这是一个有趣的问题,因为它不再是轴对齐的,因此"未定义"在某种意义上。 (请参阅UIView关于非身份frame的{​​{1}}属性的文档。)

如果你在这个非轴对齐的矩形上运行transform,我真的不确定你会得到什么。也许是这样的:

enter image description here

但是,您可以轻松地询问相对于rootView的内部视图的左上角或中心,如下所示:innerView.convert (innerView.frame, to: rootView)