Увеличение и просмотр в одном ScrollView - PullRequest
0 голосов
/ 10 марта 2019

Я пытаюсь создать что-то вроде галереи фотографий.

Но теперь у меня проблема с увеличением масштаба в UIScrollView.

for i in 0..<imageArray.count{
        let imageView = UIImageView()
        imageView.isUserInteractionEnabled = true
        imageView.image = imageArray[i]
        imageView.contentMode = .scaleAspectFit
        let xPosition = self.view.frame.width * CGFloat(i)
        imageView.frame = CGRect(x: 0, y: 0, width: self.scrollView.frame.width, height: self.scrollView.frame.height)
        scrollView.addSubview(imageView)

        scrollView.contentSize.width = scrollView.frame.width * CGFloat(i+1)
    }

    scrollView.isScrollEnabled = true
    scrollView.minimumZoomScale = 1.0
    scrollView.maximumZoomScale = 6.0
    scrollView.isUserInteractionEnabled = true
    scrollView.delegate = self

Пейджинг работает нормально, но я не знаю, как сейчасвключить масштабирование каждого изображения.

1 Ответ

1 голос
/ 10 марта 2019

Вам потребуется реализовать следующий метод из протокола UIScrollViewDelegate:

func viewForZooming(in: UIScrollView) -> UIView?

, чтобы вы возвращали представление, которое хотите масштабировать.

Теперь в этом случаеу вас есть несколько представлений изображений (в зависимости от imageArray.count), но я предполагаю, что вы хотите прокрутить их все (т.е. не отдельные изображения), поэтому лучше всего было бы добавить «представление содержимого» (UIView) в представление прокрутки изатем добавьте отдельные виды изображений к этому вместо прямого просмотра прокрутки и измените его размер соответствующим образом.

Затем вы можете вернуть это «представление содержимого» в методе viewForZooming.

Итак, при условии, что высоздали бы это «представление содержимого», тогда метод будет выглядеть так:

func viewForZooming(in: UIScrollView) -> UIView? {
    return self.contentView
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...