0

画像にドラッグ効果を実装しましたが、テスト中にマウスのクリック イベントでのみ画像が移動することがわかりました。

ドラッグ イベントを使用して、画面上でマウスを使用して画像を移動できません。しかし、画面の端をクリックすると、クリックした場所に画像が表示されます。

YouTube で多くのトピックをフォローしましたが、最終的には同じ動作をしていません。

この私のコード:

ScreenView1.h

IBOutlet UIImageView *image;

ScreenView1.m

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

    image.center = location;
    [self ifCollision];
}

-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    [self touchesBegan:touches withEvent:event];
}
4

3 に答える 3

2

画像ビューをドラッグしたい場合は、UIPanGestureRecognizer を使用すると非常に便利です。この種のことは些細なことです。使ってtouchesBeganいるのはなんとiOS 4!

UIPanGestureRecognizer* p =
    [[UIPanGestureRecognizer alloc] initWithTarget:self
                                            action:@selector(dragging:)];
[imageView addGestureRecognizer:p];

// ...

- (void) dragging: (UIPanGestureRecognizer*) p {
    UIView* vv = p.view;
    if (p.state == UIGestureRecognizerStateBegan ||
            p.state == UIGestureRecognizerStateChanged) {
        CGPoint delta = [p translationInView: vv.superview];
        CGPoint c = vv.center;
        c.x += delta.x; c.y += delta.y;
        vv.center = c;
        [p setTranslation: CGPointZero inView: vv.superview];
    }
}
于 2013-04-16T18:05:10.683 に答える