【问题标题】:Approximate rect after applying CATransform3D?应用 CATransform3D 后的近似矩形?
【发布时间】:2015-06-30 13:43:55
【问题描述】:

我将CATransform3D 应用于视图。在它之后如何找到它的近似新帧?

我的意思是我应用了一个复杂的变换:旋转、平移、缩放和透视。我需要找到近似最小矩形之类的东西。我需要它,因为这个视图被添加到UIScrollView(要知道我需要的contentSize,当然要实现“scrollToItem:”)

【问题讨论】:

    标签: ios uiview uiscrollview frame catransform3d


    【解决方案1】:

    如果你想获得完全包含这个转换视图的CGRect,你可以使用convertRect:toView:。例如:

    CGRect rect = [viewWithTransforms convertRect:viewWithTransforms.bounds toView:self.view];
    

    例如,灰色视图是UIView的一些变换,黑色边框是上图convertRect:toView:的结果:

    【讨论】:

    • 这很奇怪,但在我的情况下,它显示的结果与 frame 属性相同。你不知道他们有什么不同吗?
    • 根据documentation,如果视图被转换,“frame属性的值是未定义的”。我并不惊讶它等于convertRect 结果(这是一个更通用的解决方案),但鉴于文档中的警告,一旦视图被转换,我就不会使用framebounds 描述了变换前矩形的大小。
    • 我使用你的代码,但是当我当时缩放视图时它仍然给 CGRectInfinite。
    • convertRect 正在返回CGRectInfinite?还是frame 是?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    相关资源
    最近更新 更多