2013-06-20 3 views
0

У меня есть UIImageView, который я пытаюсь переместить, используя объект UIPanGestureRecognizer. UIImageView позиционируется поверх UITableView и служит в качестве полосы прокрутки. Я хочу, чтобы этот UIImageView перемещался пользователем вверх или вниз по UITableView, а не сбоку. Для достижения этой цели, я реализовал UIGestureRecognizerDelegate, и у меня есть следующие методы:Пытается правильно переместить UIImageView с помощью gestureRecognizer в iOS

- (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 вверх/вниз, пока пользователь тащит ее. Может ли кто-нибудь увидеть, что я делаю неправильно?

ответ

1

В вашем методе обработчика просто держите эту строку и удалите все остальные.

_imageView.center.y = [recognizer locationInView:[_imageView superView]].y; 

Вам нужно найти место в супервизоре, а не в изображении. И просто измените значение центра y.

+0

Большое спасибо за ваше решение, это сработало! – syedfa