Масштабирование в UIScrollview программно не работает - PullRequest
0 голосов
/ 05 мая 2020

Я использую двойное касание для увеличения изображения в режиме прокрутки.

Метод ниже работает нормально (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)
        }



    }

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

проблема была решена путем перемещения кода масштабирования на viewDidAppear

0 голосов
/ 05 мая 2020
func viewForZooming(in scrollView: UIScrollView) -> UIView?
{
    return image
}

override func viewDidLoad() {
    super.viewDidLoad()

    scrollView.delegate = self
    scrollView.minimumZoomScale = 1
    scrollView.maximumZoomScale = 20

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...