如何让ScrollView中的Image表现得像MapView [关闭] [关闭]。

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

我正在构建一个应用程序,我想在其中显示一个平面图,图像是1260x1000,大于我的视图控制器的大小。我希望用户能够平移图像并放大和缩小,类似于Mapview中地图的表现。我如何调整我的ScrollView属性以获得所需的结果?

ios swift image uiscrollview
1个回答
1
投票
  1. 首先,确保你的滚动视图的最大缩放比例大于默认的1.0。如果你想的话,你可以在Interface Builder中更改这个,或者使用 最大缩放比例 属性的代码。

  2. 让你的控制器委派你的滚动视图......scrollView.delegate = self。

  3. 确保你的视图控制器符合 UIScrollViewDelegate 协议,然后添加 viewForZooming(in:) 方法,像这样。

      func viewForZooming(in scrollView: UIScrollView) -> UIView? {
    
        return imageView
    }
    

所以基本上你的代码会和这个类似

class YourViewController: UIViewController, UIScrollViewDelegate {
    var scrollView: UIScrollView!
    var imageView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()

        imageView = UIImageView(image: UIImage(named: "yourImage.png"))
        scrollView = UIScrollView(frame: view.bounds)
        scrollView.contentSize = imageView.bounds.size
        scrollView.addSubview(imageView)
        scrollView.delegate = self
        scrollView.minimumZoomScale = 0.3
        scrollView.maximumZoomScale = 2
        view.addSubview(scrollView)
    }

        func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
        return imageView
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.