0

UIPanGestureRecognizer オブジェクトを使用して移動しようとしている UIImageView があります。UIImageView は UITableView の上に配置され、スクロールバーとして機能します。この UIImageView を、ユーザーが横ではなく UITableView の上または下に移動するようにします。これを実現するために、UIGestureRecognizerDelegate を実装し、次のメソッドを用意しました。

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

     return YES;

}

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

    NSLog(@"Do I get called?");
    //_startLocation is a property of type CGPoint that I declare in the .h file
    _startLocation = [recognizer locationInView:_imageView];

    NSLog(@"The point is: %d", _startLocation);

    CGRect frame = [_imageView frame];

    frame.origin.y += frame.origin.y - _startLocation.y;

    [_imageView setFrame: frame];

    _imageView.center = _startLocation;

} 

メソッドpanGestureDetectedは、次のように呼び出さviewDidLoadれます。

UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureDetected:)];
    panGesture.maximumNumberOfTouches = 1;
    panGesture.minimumNumberOfTouches = 1;
    panGesture.delegate = self;
    [_table addGestureRecognizer:panGesture];

残念ながら、UIImageView を移動しようとすると、画面上で必死に移動します。ユーザーがドラッグしている間、スムーズにスクロールする UIImageView が上下するのを見たいです。誰かが私が間違っていることを見ることができますか?

4

1 に答える 1