1

UIImageViewこのメソッドを使用して、xPosとyPosに従ってビューに(または私が持っているものは何でも)取得したいと思います:

- (void) touchesMoved: (NSSet *)touches withEvent:(UIEvent *)event {
  CGPoint tappedPt = [[touches anyObject] locationInView:viewIndex];
  int     xPos = tappedPt.x;
  int     yPos = tappedPt.y;

  NSLog(@"xPos %i yPos %i ", xPos, yPos);


  // do something with xPos and yPos like add them to an array
}

どうもありがとう !

4

3 に答える 3

0

子階層を通り抜けるものはないと思います。UIView メソッドを使用して、作業の一部を切り取ることができます:-

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

event は nil になる可能性がありますが、それでも各子に対してそのテストを実行する必要があり、潜在的にそれは子孫です。

于 2012-07-24T08:49:59.130 に答える
0

UIImageViewオブジェクトのフレームを知っていれば、ポイントが長方形にあるかどうかを確認するのはそれほど難しくありません。

しかし、UIView のサブクラスを作成しようとしたことがありますか?それに画像を追加してください。UIImageViewオブジェクトを追加するのではなく、そのクラスオブジェクトを追加し、UIViewControllerクラスではなくこのUIViewのサブクラスにタッチメソッドを実装しますか?

于 2012-07-24T08:27:01.143 に答える
-1

メイン ビューのすべてのサブビューを取得できます。次に、サブビュー内のタッチ ポイントかどうかを判断します。

for(UIView *aView in [self subviews])
{
    if(CGRectContainsPoint(aView.frame, tappedPt))
    {
        return aView;
    }
}

しかし、それには問題があります。多くのサブビューがオーバーラップしている場合は、ビューしか取得できません。ビュー配列を取得するようにコードを変更できます。

于 2012-07-24T08:37:11.160 に答える