В настоящее время я перемещаю UIImageView с использованием объекта UIPanGestureRecognizer в своем приложении. В настоящее время этот UIImageView движется вверх и вниз очень хорошо на моем экране. Однако теперь я хочу ограничить границу движения UIImageView в пределах области, охватываемой моим UITableView, который находится посередине экрана. Я хочу ограничить это перемещение как верхней, так и нижней границ UITableView. Вот мой соответствующий метод, где я могу контролировать движение моего UIImageView:Необходимо ограничить перемещение UIImageView в область, охватываемую UITableView, используя UIPanGestureRecognizer в iOS
- (void)panGestureDetected:(UIPanGestureRecognizer *)recognizer {
_startLocation = [recognizer locationInView:_imageView];
NSLog(@"The point is: %d", _startLocation);
CGPoint newCenter = _imageView.center;
newCenter.y = [recognizer locationInView:[_imageView superview]].y;
//this is where I figure I need to include an if statement to perform a check to see if the location is within the desired region
_imageView.center = newCenter;
}
я понимаю, что мне нужно будет включать в себя «если» заявление в моем методе, чтобы проверить, если мой UIImageView находится в пределах моей желаемой области, но проблема в том, что я не уверен, как проверить это. Может ли кто-нибудь помочь мне здесь?
Большое спасибо за ваше решение. У меня есть для вас следующий вопрос. Мой вид таблицы (_table) и мой UIImageView (_imageView) прикреплены к представлению parent/super. Из-за этого замените _imageView.superview на _table? – syedfa
Я бы заменил _imageView.superview.frame.origin.y с _table.frame.origin.y и _imageView.frame.size.height с _table.frame.size.height. дай мне знать, если это работает – Austin