Я использую двойное касание для увеличения изображения в режиме прокрутки.
Метод ниже работает нормально (imageView увеличивает / уменьшает масштаб), когда он вызывается из действия нажатия кнопки.
Однако мне нужно вызвать метод программно для увеличения масштаба, когда я это делаю, ничего не происходит : imageView не увеличивает масштаб.
Что мне не хватает?
Ниже представлена точная копия метода @objc func doubleTapped()
, который я использую, с заменой местоположения касания произвольным CGPoint
func doubleTappedCustom() {
var scale: CGFloat = 2
let ratioW = imageView.frame.width / imageView.image!.size.width
let ratioH = imageView.frame.height / imageView.image!.size.height
let ratio = ratioW < ratioH ? ratioW:ratioH
let newWidth = imageView.image!.size.width * ratio
let newHeight = imageView.image!.size.height * ratio
if (imageView.image.size.width < imageView.size.height){
if scale > imageView.frame.width / newWidth {
scale = imageView.frame.width / newWidth
}
}
let location = CGPoint(x: imageView.frame.width/2, y: imageView.frame.height/2)
if scrollView.zoomScale == 1 {
// here tap location is repalced with 'location' cgpoint
scrollView.zoom(to: zoomRectForScale(scale, center: location), animated: true)
} else {
scrollView.setZoomScale(1, animated: true)
}
}