テニスボールと赤いマーカーの2つの画像があります。背景としてテニス ボールを作成し、テニス ボールの上のレイヤーのように前景として赤いマーカーを作成する必要があり、テニス ボールの形状に応じて赤いマーカーを調整する必要があります。ピンチとタッチのアクションでこれを達成する必要があります。
下の2枚の画像です。
画像 1:
画像 2 (レイヤー):
最終的な画像 円を調整して:
これについての初心者は良いでしょう!!
テニスボールと赤いマーカーの2つの画像があります。背景としてテニス ボールを作成し、テニス ボールの上のレイヤーのように前景として赤いマーカーを作成する必要があり、テニス ボールの形状に応じて赤いマーカーを調整する必要があります。ピンチとタッチのアクションでこれを達成する必要があります。
下の2枚の画像です。
画像 1:
画像 2 (レイヤー):
最終的な画像 円を調整して:
これについての初心者は良いでしょう!!
これを行うには 2 つの方法があります (ユーザー タッチの処理)。
touchesBegan:withEvent:
、touchesMoved:withEvent:
およびtouchesEnded:withEvent:
メソッド。リファレンスはこちら: UIResponder - Responding to Touch Events .
ジェスチャー認識機能 (標準のジェスチャー認識機能を使用するか、独自のジェスチャー認識機能を作成します)。参照はこちら: Gesture Recognizers。良いチュートリアルはこちらです。
赤い円を移動するだけで、サイズを調整する必要がない場合は、touches...
メソッドを使用すると便利です。
ただし、ピンチ ジェスチャを使用して円のサイズを調整する場合は、カスタム ジェスチャ レコグナイザを作成して (同じtouches...
メソッドを実装して)、タッチと移動を処理する必要があります。標準のUIPinchGestureRecognizerを使用して、ピンチ ジェスチャを処理します。
hereで述べたように、標準のUITapGestureRecognizerとUIPanGestureRecognizerにはいくつかの問題があるため、カスタム ジェスチャ認識エンジンを作成する必要があります。
更新:
たとえば、UIViewController
. viewControllerUIImageView
のview
. そしてUIView
、クリアな背景で作成し、その中に赤い円を描いているかUIImageView
、赤い円で別のものを追加しています(画像がある場合)。と呼びましょうredCircleView
。
redCircleView
透明にする( )かredCircleView.alpha = 0
、ユーザーが画面に触れたときに初期化できます。2番目のオプションの方が良いと思いますが、よくわかりません。
あなたUIViewController
が実装しているtouchesBegan:withEvent:
メソッドでは、redCircleView.alpha = 1
this を設定または初期化していredCircleView
ます。
実装ではtouchesMoved:withEvent:
、使用して任意のビューでタッチの位置を取得できますUITouch:locationInView:
(void) touchesMoved: (NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self.view];
.
.
.
}
次に、変更するかredCircleView.center
(赤い円の中心が画面上の指をたどります)、または前のポイントの位置を保存し、それを現在の位置と比較してから移動できredCircleView
ます。