【问题标题】:How to make Image in ScrollView behave like MapView [closed]如何使 ScrollView 中的图像表现得像 MapView [关闭]
【发布时间】:2020-08-24 14:41:02
【问题描述】:

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

【问题讨论】:

    标签: ios swift image uiscrollview


    【解决方案1】:
    1. 首先,确保滚动视图的最大缩放比例大于默认值 1.0。您可以根据需要在 Interface Builder 中更改此设置,或在代码中使用 maximumZoomScale 属性。

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

    【讨论】:

    • 感谢您的回复。图像以 id 的方式平移,但捏缩放不起作用。我确保 ViewController 和 main.storyboard 上的最小和最大缩放比例匹配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 2017-06-19
    • 2017-01-26
    相关资源
    最近更新 更多