Я реализовал масштабирование UIImageView с помощью CGAffineTransformScale. Я бы сосредоточил зум на точке между двумя пальцами.
Мне не удается использовать точку привязки моего UIImageView для центрирования увеличения.
func handlePinchGesture(gesture: UIPinchGestureRecognizer) {
if(gesture.state == .Began) {
self.transitionView = UIImageView(image: self.imageView.image)
if let view = transitionView {
view.frame = CGRectMake(0, self.topImageViewConstraint.constant, self.imageView.frame.width, self.imageView.frame.height)
self.view.addSubview(transitionView)
}
let locationInView:CGPoint = gesture.locationInView(self.transitionView)
let locationInSuperview:CGPoint = gesture.locationInView(self.transitionView.superview)
self.transitionView.layer.anchorPoint = CGPointMake(locationInView.x / self.transitionView.bounds.size.width, locationInView.y / self.transitionView.bounds.size.height)
self.transitionView.center = locationInSuperview
}
if(gesture.state == .Began || gesture.state == .Changed) {
self.transitionView.transform = CGAffineTransformScale(self.transitionView.transform, gesture.scale, gesture.scale)
gesture.scale = 1
}
}
ИЗМЕНИТЬ
Шаг 1, мой взгляд до ущемления:
Шаг 2, когда щипок вызывается перед шкалой
Изображение сдвигается, как только я зажимаю UIImageView (transitionView в моем коде выше). Не понимаю, почему теряю позицию кадра.