应用 CATransform3D 后的近似矩形?
Posted
技术标签:
【中文标题】应用 CATransform3D 后的近似矩形?【英文标题】:Approximate rect after applying CATransform3D? 【发布时间】:2015-06-30 13:43:55 【问题描述】:我将CATransform3D
应用于视图。在它之后如何找到它的近似新帧?
我的意思是我应用了一个复杂的变换:旋转、平移、缩放和透视。我需要找到近似最小矩形之类的东西。我需要它,因为这个视图被添加到UIScrollView
(要知道我需要的contentSize
,当然要实现“scrollToItem:”)
【问题讨论】:
【参考方案1】:如果你想获得完全包含这个转换视图的CGRect
,你可以使用convertRect:toView:
。例如:
CGRect rect = [viewWithTransforms convertRect:viewWithTransforms.bounds toView:self.view];
例如,灰色视图是UIView
的一些变换,黑色边框是上图convertRect:toView:
的结果:
【讨论】:
这很奇怪,但在我的情况下,它显示的结果与 frame 属性相同。你不知道他们有什么不同吗? 根据documentation,如果视图被转换,“frame
属性的值是未定义的”。我并不惊讶它等于convertRect
结果(这是一个更通用的解决方案),但鉴于文档中的警告,一旦视图被转换,我就不会使用frame
。 bounds
描述了变换前矩形的大小。
我使用你的代码,但是当我当时缩放视图时它仍然给 CGRectInfinite。
convertRect
正在返回CGRectInfinite
?还是frame
是?以上是关于应用 CATransform3D 后的近似矩形?的主要内容,如果未能解决你的问题,请参考以下文章