У меня есть UIScrollView
и внутри UIImageView
, так что я могу Pinche увеличить вид изображения с помощью:Как переместить жест панорамы из UIScrollView в UIImageView?
extension CropperViewController : UIScrollViewDelegate {
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return self.imageView;
}
}
теперь я также хочу, чтобы иметь возможность свободно перемещать UIImageView
так что я пытаюсь добавить UIPanGestureRecognizer to my
UIImageView`:
self.imageView.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.handlePan(_:))));
func handlePan(_ gestureRecognizer: UIPanGestureRecognizer) {
if gestureRecognizer.state == .began || gestureRecognizer.state == .changed {
let translation = gestureRecognizer.translation(in: self.view);
gestureRecognizer.view!.center = CGPoint(x: gestureRecognizer.view!.center.x + translation.x, y: gestureRecognizer.view!.center.y + translation.y);
gestureRecognizer.setTranslation(CGPoint.zero, in: self.view);
}
}
У меня возникла проблема в том, что никакого события касания касания не было уволено вообще, поэтому я подумал, что UIScrollView
ловит все эти события. Таким образом, некоторые исследования Stackoverflow сказал мне, чтобы добавить следующее к моей UIScrollView
:
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:)));
tapGestureRecognizer.numberOfTapsRequired = 1;
tapGestureRecognizer.cancelsTouchesInView = false;
self.scrollView.addGestureRecognizer(tapGestureRecognizer);
, но на самом деле это ничего не изменило. Я могу масштабировать и перемещать изображение после масштабирования, но я не могу перемещать изображение, используя UIPanGestureRecognizer
. Я хочу использовать UIScrollView
, чтобы иметь возможность масштабирования, но я хочу использовать UIPanGestureRecognizer
для перемещения UIImageView
.
Как я могу это сделать?
EDIT
Может быть, это можно отключить или изменить панорамирование жест распознаватель из UIScrollView
и направить эти события в UIImageView
?
Я не хочу 'shouldRecogniseSimultaneouslyWith ....'. Я хочу, чтобы ScrollView обрабатывал масштабирование и PanGestureRecognizer в UIImageView для обработки перемещения. – Mulgard