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 が上下するのを見たいです。誰かが私が間違っていることを見ることができますか?