私は非常に単純な Ray Wenderlich iOS の「ドラッグ」の例で作業していました。この例では、2 つUIImageViews
(サルとバナナ) を画面上でドラッグできます。UIPanGestureRecognizer
ViewController 実装ファイルでa を利用します。
- (IBAction)handlePan:(UIPanGestureRecognizer *)recognizer {
CGPoint translation = [recognizer translationInView:self.view];
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x,
recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
}
これは問題なく動作し、サルとバナナはドラッグした位置にとどまります。UIImageView
ただし、クリック(タッチ)した方が一番上に表示されるようにしたかったのです。少しふざけて、次のコード行を思いつきました。
[self.view bringSubviewToFront:recognizer.view];
これを handlePan メソッドに入れると、クリック (タッチ) された画像はすべて前面に表示されますが、前の画像は画面上の元の位置にリセットされます。タッチされたサブビューを前面に表示するコード行を省略すると、そうはなりません。
他の画像を元の位置にリセットするために、選択したサブビューを前面に移動することについてはどうですか? これはどのように防止されUIPanGestureRecognizer
ますか?touchesBegan
、touchesEnded
、などの方法ルートに行かずに?
明らかに、私はiosプログラミングに慣れていませんが、おそらく単純な問題に対する答えを見つけることができませんでした. みんなありがとう...助けていただければ幸いです...