我遇到了类似的问题,其解决方案已在此处提出: https://stackoverflow.com/a/16511494/3134192
我有一个包含内部视图的外部视图。外部视图使用CGAffineTransform
旋转(正在进行的无尽动画)。我想计算相对于旋转外视图的内部视图的框架( - >实际显示的内部视图的框架,因为它与外部视图一起旋转)。
我不太了解convert()
的这些UIKit
方法。我从来没有得到它转换过的坐标系。此外,问题的解决方案对我不起作用,它给了我一个不正确的框架。
我很感激任何帮助。 谢谢!
答案 0 :(得分:1)
所以听起来你有这样的情况:
内部视图的框架"相对于外部视图"根据定义,它的框架在其superview的坐标空间中指定,因此没有改变。所以也许你正在寻找相对于封闭的rootView的框架。这是一个有趣的问题,因为它不再是轴对齐的,因此"未定义"在某种意义上。 (请参阅UIView关于非身份frame
的{{1}}属性的文档。)
如果你在这个非轴对齐的矩形上运行transform
,我真的不确定你会得到什么。也许是这样的:
但是,您可以轻松地询问相对于rootView的内部视图的左上角或中心,如下所示:innerView.convert (innerView.frame, to: rootView)
。