0

こんにちは私は2を持っていUIImageViewsますUIView

タッチするとUIImageView touchesBeganメソッドが呼び出されます。しかし、ドラッグするとUIImageViewtouchesMovedが呼び出されます。しかし同時にtouchesMoved2番目UIImageViewも呼ばれます。

touchesMoved両方のイベントを取得する方法を教えてくださいUIImageViews

これは私のコードです

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint currentPoint = [touch locationInView:self.view];

    if (CGRectContainsPoint(iv1.frame,currentPoint)==YES)
        NSLog(@"iv1 Begin");
    if (CGRectContainsPoint(iv2.frame,currentPoint)==YES)
        NSLog(@"iv2 Begin");
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint currentPoint = [touch locationInView:self.view];
    if(CGRectContainsPoint(iv1.frame,currentPoint)==YES)
        NSLog(@"iv1 Moved NO");
    if(CGRectContainsPoint(iv2.frame,currentPoint)==NO)
        NSLog(@"iv1 Moved YES");
    if(CGRectContainsPoint(iv2.frame,currentPoint)==YES)
        NSLog(@"iv2 Moved NO");
    if(CGRectContainsPoint(iv2.frame,currentPoint)==NO)
        NSLog(@"iv2 Moved NO");
}

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint currentPoint = [touch locationInView:self.view];

    if (CGRectContainsPoint(iv1.frame,currentPoint)==YES)
        NSLog(@"iv1 End");
    if (CGRectContainsPoint(iv1.frame,currentPoint)==YES)
        NSLog(@"iv2 End");
}
4

1 に答える 1

1

2つのビューにリンクされた2つのアウトレットを使用できます。これは、タッチメソッド内の2つのビューを再認識するためのコードです。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
   UITouch *t = [touches anyObject];
   touchedView = t.view;
   if (t.view == view1) {

    //todo something with view1;

   } else if (t.view == view2) {

      //todo something with view2

   }
}
于 2012-11-12T09:26:38.443 に答える