0

カスタムUIViewクラスがあります。そのビューの中には、画像ビューがあります。(私はUISliderを最初から作成しています)。

画像ビュー(スライダーの親指)を取得して、ビューを横切って移動しようとしています。以下はUIViewクラスのコードです

- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {

    CGPoint touchPoint = [touch locationInView:self];


    if ( CGRectContainsPoint(self.thumb.frame, touchPoint))

        self.thumb.center = CGPointMake(touchPoint.x, self.thumb.center.y);

    return YES;

}

スライダーの親指に指を置いてドラッグしようとしても、何も起こりません。ただし、スライダーの親指の外側に触れ、指を離さずに親指にドラッグしてから、親指をドラッグしてみると、問題なく動作します。

誰かが親指を持ってドラッグしようとしたときにメソッドが呼び出されるようにコードを変更するにはどうすればよいですか?

4

1 に答える 1

0

私の推測では、画像ビューでユーザーインタラクションが有効になっているため、タッチイベントがバッキングロジックビューに中継されていません。このようなことをします:

self.thumb.userInteractionEnabled = NO

使用しているinitメソッドにそれを入れると、サムビューがタッチイベントを中断しなくなります。

于 2011-11-19T08:48:14.693 に答える