0

UIView画面の一部に があります。この UIView には、パン ジェスチャ レコグナイザがあります。この UIView ( mainVw ) にはUITextView、UIView を完全にカバーする があります。この UITextview にはスワイプ ジェスチャ (左と書き込み) があります。

私の問題は、左または右にスワイプすると、UIView もドラッグを開始することです。私が欲しいのは、UIViewをドラッグするとドラッグする必要があり、スワイプするとUITextViewは左にスワイプする必要がありますが、ドラッグはありません。

理解を深めるために使用しているコードは次のとおりです。

UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
    [panGesture setMinimumNumberOfTouches:1];
    panGesture.delegate =(id)self;
    [self.mainVw addGestureRecognizer:panGesture];
    //[self.mainVw.layer setValue:[NSValue valueWithCGPoint:vwCaptionBg.center] forKey:@"originalCenter"];


UISwipeGestureRecognizer *rightRecognizer;
rightRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanTouch:)];
[rightRecognizer setDirection: UISwipeGestureRecognizerDirectionRight];
rightRecognizer.delegate=(id)self;
[self.txtVw addGestureRecognizer:rightRecognizer];


UISwipeGestureRecognizer *vwLeftRecognizer;
vwLeftRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanTouch:)];
[vwLeftRecognizer setDirection: UISwipeGestureRecognizerDirectionLeft];
vwLeftRecognizer.delegate=(id)self;
[self.txtVw addGestureRecognizer:vwLeftRecognizer];
4

1 に答える 1

0

この方法を試してみてください[GESTURE requireGestureRecognizerToFail:GESTURE_TO_FAIL];。これは、パンを続行する前にスワイプを失敗させる必要があるためです。

同時ジェスチャに使用できるデリゲートメソッドもあります。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

または、これらのデリゲートメソッドのいずれかを独自のロジックで使用することもできます。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
于 2012-09-14T17:43:23.983 に答える