【发布时间】:2015-06-30 13:43:55
【问题描述】:
我将CATransform3D 应用于视图。在它之后如何找到它的近似新帧?
我的意思是我应用了一个复杂的变换:旋转、平移、缩放和透视。我需要找到近似最小矩形之类的东西。我需要它,因为这个视图被添加到UIScrollView(要知道我需要的contentSize,当然要实现“scrollToItem:”)
【问题讨论】:
标签: ios uiview uiscrollview frame catransform3d
我将CATransform3D 应用于视图。在它之后如何找到它的近似新帧?
我的意思是我应用了一个复杂的变换:旋转、平移、缩放和透视。我需要找到近似最小矩形之类的东西。我需要它,因为这个视图被添加到UIScrollView(要知道我需要的contentSize,当然要实现“scrollToItem:”)
【问题讨论】:
标签: ios uiview uiscrollview frame catransform3d
如果你想获得完全包含这个转换视图的CGRect,你可以使用convertRect:toView:。例如:
CGRect rect = [viewWithTransforms convertRect:viewWithTransforms.bounds toView:self.view];
例如,灰色视图是UIView的一些变换,黑色边框是上图convertRect:toView:的结果:
【讨论】:
frame属性的值是未定义的”。我并不惊讶它等于convertRect 结果(这是一个更通用的解决方案),但鉴于文档中的警告,一旦视图被转换,我就不会使用frame。 bounds 描述了变换前矩形的大小。
convertRect 正在返回CGRectInfinite?还是frame 是?