在CGAffineTransform之后转换父/子UIView之间的坐标

时间:2010-01-15 17:12:00

标签: iphone objective-c uiview cgaffinetransform

在我手动完成所有工作之前,我想问一下是否有一些帮助可以从框架中获得。

我有一个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];

1 个答案:

答案 0 :(得分:72)

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