web-dev-qa-db-ja.com

CGAffineTransform後に親/子UIView間の座標を変換します

手作業ですべてを行う前に、フレームワークから得られる助けがあるかどうかを尋ねたいと思います。

マップを持つ別のUIViewを保持するUIViewがあります。親UIViewは、マップのいくつかの凡例を保持します。最初に、マップビューでいくつかの座標を定義します。例えば(100、40)、そして親ビューにグラフィックの一部を配置します(グーグルマップの鋲など)。親ビューと子ビューはどちらも300x200であり、原点は同じです。これは、(100、40)が両方のビューで同じポイントであることを意味します。

ここで、CGAffineTransformを使用して子UIView(マップ)をズームおよび移動すると、座標(100、40)が別の場所に配置されます。ここでは、親ビューは事実上マスクです。

CGAffineTransform Matrixまたはフレームワークの別の部分を使用して、ポイントが移動したので、タックを配置する場所を計算して親ビューに通知できますか?

つまり親ビューの(100、40)と比較した子ビューの(100、400)、変換後の比較はどうなりますか?

提案や助けを与えてくれてありがとう。

子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];
33
RickiG

UIViewの-convertPoint:toView:および-convertPoint:fromView:はあなたのために働くはずです。

73
Costique