使UIView可滚动和缩放

问题描述 投票:0回答:2

我正在尝试使UIView可滚动和缩放,我将其嵌入滚动视图并设置其委托,但它不起作用。

我希望“ selectCountries” UIView可以像图像或类似图像一样进行滚动和放大和缩小。

如何获得此结果?

这是我到目前为止所做的:

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
    }
}

编辑:我尝试通过添加以下注释中写入的值来尝试,但它仍然无法缩放和滚动视图。

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
    }
}
ios swift swift3 swift4 iosdeployment
2个回答
1
投票

您还需要设置UIScrollView的最小和最大缩放比例

viewDidLoad()方法设置缩放比例

scrollView.minimumZoomScale = 1.0
scrollView.maximumZoomScale = 10.0

0
投票

设置ZoomScale并在viewDidLoad()中添加子视图的contentsize

    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
© www.soinside.com 2019 - 2024. All rights reserved.