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

Ric*_*kiG 33 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];
Run Code Online (Sandbox Code Playgroud)

Cos*_*que 73

UIView的-convertPoint:toView:,-convertPoint:fromView:应该为你工作.

  • toView从调用视图空间转换为目标视图空间. (3认同)
  • fromView从源视图空间转换为调用视图空间 (3认同)