1

長押しが検出されたときにアクションを送信するwithUIImageViewがあります。UILongPressGestureRecognizer

でユーザー インタラクションを有効にしていUIImageViewます。ただし、およびメソッドUIImageViewを使用して を移動できる、一種の手動スクロールもあります。touchesBegantouchesMoved

ユーザー操作が無効になっている場合、スクロールのみが機能します。ユーザー操作が有効になっている場合、長押しジェスチャ認識エンジンのみが機能します。

両方が同時に機能するようにするにはどうすればよいですか?

コードは必要に応じて共有できますが、この問題では必要ないと思います。

4

3 に答える 3

0

まず、以下のようにジェスチャを使用して画像を移動する必要があります。

 UIPanGestureRecognizer  *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(move:)];
[panRecognizer setMinimumNumberOfTouches:1];
[panRecognizer setMaximumNumberOfTouches:1];
[panRecognizer setDelegate:self];
[vwBigImage addGestureRecognizer:panRecognizer];

呼び出される関数は以下のようなものです..

 -(void)move:(id)sender {

CGPoint translatedPoint = [(UIPanGestureRecognizer*)sender translationInView:yourview];

if([(UIPanGestureRecognizer*)sender state] == UIGestureRecognizerStateBegan) {
    _firstX = [yourimageview center].x;//declare CGFloat _firstX; in .h file

    _firstY = [yourimageview center].y;//declare CGFloat _firstY; in .h file
}

translatedPoint = CGPointMake(_firstX+translatedPoint.x, _firstY+translatedPoint.y);
[yourimageview setCenter:translatedPoint];

}

これで、両方のジェスチャーが呼び出されます。

それが機能しているかどうかを教えてください!!!

ハッピーコーディング!!!!

于 2013-07-24T11:56:35.633 に答える