選択した領域にいくつかの効果を適用できるように、ユーザーが画像の上にフレームを移動できるアプリケーションを作成しようとしています。
ユーザーが画像上のマスクされたフレームを正確にドラッグしてスケーリングできるようにする必要があります。他の写真アプリと同じように、これが正確である必要があります。
私の戦略は、タッチ移動イベントでユーザーのタッチポイントを取得し、それに応じてフレームをスケーリングすることです。それはかなり直感的でした。タッチ移動イベントを処理するために、次のものをコーディングしました。
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:[self view]];
float currX = touchPoint.x;
float currY = touchPoint.y;
/*proceed with other operations on currX and currY,
which is coming out quite well*/
}
currX
しかし、唯一の問題は、 変数と変数の座標currY
が本来あるべき位置にないことです。デバイスからデバイスへとシフトし続ける視差エラーがあります。また、iPad の場合、x 座標と y 座標が入れ替わると思います。
正確なタッチ座標を取得する方法を教えてください。
背景画像は 1 つのビュー ( imageBG
) にあり、マスクされたフレームは別のビュー ( ) にありmaskBG
ます。私は試してみました:
CGPoint touchPoint = [touch locationInView:[maskBG view]];
と
CGPoint touchPoint = [touch locationInView:[imageBG view]];
...しかし、同じ問題が続きます。また、タッチのエラーが iPhone や iPod よりも iPad の方が悪いことに気付きました。