ios - 获取正在旋转的 View 内的 subview 框架(CGAffineTransform)

标签 ios swift cgaffinetransform

我有一个类似的问题,这里提出了解决方案: https://stackoverflow.com/a/16511494/3134192

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

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

我将不胜感激任何帮助。 谢谢!

最佳答案

听起来你的情况是这样的:

enter image description here

根据定义,innerView 的框架“相对于外部 View ”是不变的,因为它的框架是在其父 View 的坐标空间中指定的。所以也许您正在寻找它相对于封闭的 rootView 的框架。这是一个有趣的问题,因为它不再是轴对齐的,因此在某种意义上是“未定义的”。 (请参阅有关非身份 transform 的 UIView 的 frame 属性的文档。)

如果你在这个非轴对齐的矩形上运行 innerView.convert (innerView.frame, to: rootView),我实际上不确定你会得到什么。也许是这样的:

enter image description here

但是,您可以像这样轻松地请求 innerView 相对于 rootView 的左上角或中心:innerView.convert (innerView.frame.origin, to: rootView) .

关于ios - 获取正在旋转的 View 内的 subview 框架(CGAffineTransform),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46551420/

相关文章:

ios - 监控指定时间内UITextField文本变化

ios - UIImageView 保持空白

Swift:如何对笨拙但规则的 JSON 结构进行 DRY 可解码解析

swift - 无法通过代理进行设置更改以驱动 UI 更新

ios - UIView 仿射缩放变换无法在两个方向上正确设置动画

swift - CGAffineTransform 连接两个矩阵与将一个矩阵应用于另一个矩阵

ios - 未能找到类型 MvxViewModelLoader MvvmCross IOS 的构造函数

ios - Storyboard随机修改约束

swift - 在包含许多 JSON 页面的 Swift 中向下滚动 TableView

ios - 如何获得准确表示 View 边界和转换的 CGRect?