0

こんにちはUIPanGestureRecognizer、私のプロジェクトで使用しました。以下のコードを使用して処理しましたUIPanGestureRecognizer

- (void)handlePan:(UIPanGestureRecognizer *)recognizer {

      CGPoint translation = [recognizer translationInView:self];
      CGFloat newX = MIN(recognizer.view.frame.origin.x + translation.x, self.frame.size.width - recognizer.view.frame.size.width);
      CGRect newFrame = CGRectMake( newX,recognizer.view.frame.origin.y, recognizer.view.frame.size.width, recognizer.view.frame.size.height);
      recognizer.view.frame = newFrame;
      [recognizer setTranslation:CGPointZero inView:self];
}

ここに画像の説明を入力

プロジェクトには 2 つのビューがあり、1 つは親ビュー (赤色のビュー) で、もう 1 つは子ビュー (緑色のビュー) です。私の要件は、親ビューで子ビューをパンする必要があることです。私のhandlePan方法は正常に機能しますが、唯一の問題は、左側の制限を超えてパンできることです。右側で完全に機能します。コードで何を変更する必要があるか助けてください。

4

1 に答える 1

0

UIGestureRecognizerDelegateをチェックする必要があります

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touchジェスチャ認識エンジンにタッチ イベントを受信させたくない場合は、実装して NO を返します。

このメソッドは、新しいタッチのためにジェスチャ認識エンジンで touchesBegan:withEvent: が呼び出される前に呼び出されます。

于 2013-01-23T07:55:25.480 に答える