Сделать UIView прокручиваемым и масштабируемым

Я пытаюсь сделать UIView прокручиваемым и масштабируемым, я встроил представление прокрутки и установил его делегата, но он не работает.

Я бы хотел, чтобы UIView "selectCountries" можно было прокручивать и увеличивать и уменьшать, как изображение или подобное.

Как можно добиться этого результата?

Вот что я сделал до сих пор:

class ViewController: UIViewController, UIScrollViewDelegate {

    @IBOutlet var selectCountries: VTCSelectCountryView!
    @IBOutlet var scrollView: UIScrollView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        scrollView.delegate = self
        scrollView.backgroundColor = .clear

        self.selectCountries?.selectedCountries = ["ITA","USA","GBR","FRA"]
    }

    override func viewWillLayoutSubviews(){
           super.viewWillLayoutSubviews()
           scrollView.isScrollEnabled = true
           // scrollView.contentSize = CGSize(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height+60)

       }

    func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
        return self.selectCountries
    }
}

РЕДАКТИРОВАТЬ 1: я попытался добавить значения, написанные в комментариях ниже, но он все еще не масштабирует и не прокручивает представление.

class ViewController: UIViewController, UIScrollViewDelegate {

    @IBOutlet var selectCountries: VTCSelectCountryView!
    @IBOutlet var scrollView: UIScrollView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        scrollView.delegate = self
        scrollView.backgroundColor = .clear

        scrollView.minimumZoomScale = 1.0
        scrollView.maximumZoomScale = 10.0

        scrollView.bounces = true
        scrollView.bouncesZoom = true
        scrollView.contentSize = CGSize(width: selectCountries.frame.size.width, height: selectCountries.frame.size.height)
        scrollView.showsVerticalScrollIndicator = true
        scrollView.showsHorizontalScrollIndicator = true

        self.selectCountries?.selectedCountries = ["ITA","USA","GBR","FRA"]
    }

    override func viewWillLayoutSubviews(){
           super.viewWillLayoutSubviews()
           scrollView.isScrollEnabled = true
           // scrollView.contentSize = CGSize(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height+60)
       }

    func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
        return self.selectCountries
    }
}

РЕДАКТИРОВАТЬ 2: вот скриншот раскадровки

Storyboard-Scrollview_screenshot


person Andrea Maps    schedule 28.01.2020    source источник
comment
@AnreaMaps Не могли бы вы поделиться своим пользовательским интерфейсом класса ViewController?   -  person HardikS    schedule 29.01.2020
comment
@HardikS Я добавил скриншот   -  person Andrea Maps    schedule 29.01.2020
comment
почему вы указали нижние ограничения для выбранных стран с UIView по UITextField и UIScrollView? Удалите ненужные нижние ограничения от UIView до UIScrollVIew и дайте мне знать, работает это или нет.   -  person HardikS    schedule 29.01.2020
comment
@HardikS Я пробовал, но все равно не работает, есть идеи?   -  person Andrea Maps    schedule 30.01.2020


Ответы (2)


Вам также необходимо установить минимальный и максимальный масштаб масштабирования UIScrollView.

Установите масштаб масштабирования в методе viewDidLoad()

scrollView.minimumZoomScale = 1.0
scrollView.maximumZoomScale = 10.0
person HardikS    schedule 29.01.2020

установите ZoomScale и добавьте contentsize подпредставления в свой viewDidLoad()

    scrollview.maximumZoomScale = 4
    scrollview.minimumZoomScale = 1.0
    scrollview.bounces = true
    scrollview.bouncesZoom = true
    scrollview.contentSize = CGSize(width: imagerepoart.frame.size.width, height: imagerepoart.frame.size.height)
    scrollview.showsVerticalScrollIndicator = true
    scrollview.showsHorizontalScrollIndicator = true
person Ruchi Makadia    schedule 29.01.2020
comment
пожалуйста, проверьте ограничение прокрутки правильно или нет. - person Ruchi Makadia; 29.01.2020