0

subviewのがimageviewありPanGestureRecognizer、メイン ビューには がありLongPressGestureRecognizerます。longpress次のようにビューにのみを追加しました。

screenRecognize = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(screenTaped:)];
screenRecognize.minimumPressDuration = 0.0;
self.userInteractionEnabled = YES;
[self addGestureRecognizer:screenRecognize];

そして、これがイメージビューです:

imageViewPanRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(imageViewPulled:)];

imageView = [[UIImageView alloc] initWithFrame:CGRectMake(310, 50, 10, 40)];
imageView.image = [UIImage imageNamed:@"image.png"];
imageView.userInteractionEnabled = YES;
[imageView addGestureRecognizer:imageViewPanRecognizer];
[self addSubview:imageView];

に触れるimageViewUILongPressRecognizer発射されます。どうしてこれなの?

4

2 に答える 2

0

1) maximumPressDuration=0 で長いジェスチャーを使用するのはなぜですか? パンジェスチャがうまく使えない?

2) ジェスチャを連携させたい場合は、次のようにしてみてください。

longGesture.delegate = self;
...
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

3) ユーザーが UIImageView の長いジェスチャを無効にするためにパンしたい場合は、次のようなことを試してください。

self.tag = 1;
longGesture.delegate = self;
...
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    return touch.view.tag == 1;
}
于 2013-07-04T12:17:47.393 に答える