【问题标题】:Convert coordinates between parent/child UIView after CGAffineTransform在 CGAffineTransform 之后转换父/子 UIView 之间的坐标
【发布时间】:2010-01-15 17:11:59
【问题描述】:

在我动手做所有事情之前,我想问一下是否可以从框架中获得一些帮助。

我有一个 UIView,其中包含另一个带有地图的 UIView。父 UIView 包含地图的一些图例。最初我在地图视图中定义了一些坐标。例如(100, 40),然后在父视图中放置一块图形(如谷歌地图中的图钉等)。父视图和子视图都是 300x200 并且具有相同的原点。这意味着 (100, 40) 在两个视图中是同一点。

现在我使用 CGAffineTransform 缩放和移动子 UIView(地图),坐标 (100, 40) 现在位于其他位置。父视图在这里实际上是一个掩码。

我可以使用 CGAffineTransform 矩阵或框架的其他部分来计算并通知父视图在点已移动后放置大头钉的位置吗?

即子视图中的 (100, 400) 与父视图中的 (100, 40) 相比,转换后与什么比较?

感谢您提供的建议或帮助。

子UIView的动画

    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:1.0]; 
    CGAffineTransform transform = CGAffineTransformMakeScale(1.8f, 1.8f);
    worldMap.transform = transform;
    worldMap.bounds.origin = newPos;
    [UIView commitAnimations];

【问题讨论】:

    标签: iphone objective-c uiview cgaffinetransform


    【解决方案1】:

    UIView 的 -convertPoint:toView:-convertPoint:fromView: 应该适合你。

    【讨论】:

    • Costique 是正确的,不需要自己做矩阵数学。你有整个视图层次系统来帮助你。
    • 答案是正确的,但如果你解释到从查看差异查看,我会很好
    • toView 从调用视图空间转换到目标视图空间。
    • fromView 从源视图空间转换到调用视图空间
    猜你喜欢
    • 2013-10-31
    • 2014-01-22
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    相关资源
    最近更新 更多