Ios 通过故事板在Scrollview中平移大图像

Ios 通过故事板在Scrollview中平移大图像,ios,swift,uiscrollview,uiimageview,storyboard,Ios,Swift,Uiscrollview,Uiimageview,Storyboard,我正在构建一个应用程序,其中我希望显示一个平面图,其中图像为2952x3600,大于我的视图控制器的大小。我希望用户能够平移图像并放大和缩小,类似于Mapview中地图的行为 我能够通过以下代码以编程方式获得所需的结果。不过,我希望能够添加按钮的形象,这将更容易做到在故事板。如何在故事板中实现相同的结果 class ViewController: UIViewController, UIScrollViewDelegate { var scrollView: UIScrollView!

我正在构建一个应用程序,其中我希望显示一个平面图,其中图像为2952x3600,大于我的视图控制器的大小。我希望用户能够平移图像并放大和缩小,类似于Mapview中地图的行为

我能够通过以下代码以编程方式获得所需的结果。不过,我希望能够添加按钮的形象,这将更容易做到在故事板。如何在故事板中实现相同的结果

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

    override func viewDidLoad() {
        super.viewDidLoad()
        imageView = UIImageView(image: UIImage(named: "TorontoPATHNetworkMap_v.2018.08.pdf"))
        scrollView = UIScrollView(frame: view.bounds)
        scrollView.contentSize = imageView.bounds.size
        scrollView.addSubview(imageView)
        scrollView.delegate = self
        scrollView.minimumZoomScale = 0.3
        scrollView.maximumZoomScale = 5
        view.addSubview(scrollView)
    }

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

如果要添加其他UI元素按钮、标签、子视图等,并在缩放滚动视图内容时使其缩放和移动,则有两个选项:

1在代码中将按钮添加为图像视图的子视图。它们将随图像视图移动/调整大小

2如果您发现直观地布局按钮更容易,您可以在故事板/界面生成器中进行布局。但是,在IB中,无法将子视图添加到UIImageView,因此需要将图像视图和按钮嵌入到容器UIView中。然后在控制器类中,从viewForZooming返回容器视图

编辑


下面是在Storyboard/IB中设置视图的示例:

。。。将按钮添加到图像。。。以什么方式?是否需要在缩放和移动图像时缩放和移动的按钮?还是希望它们像+缩放控件一样在滚动视图框内浮动?还有,为什么你认为在故事板中添加按钮会更容易呢?我想要在缩放和移动图像时缩放和移动的按钮。我想这会更容易,因为我有大量的按钮要添加到比我的视图控制器更大的图像中。我想直观地布局我的按钮。在我当前的代码中,图像不会显示在故事板上,因此我看不到按钮的放置位置。当我在情节提要中将同一图像添加到我的图像视图时,它会以副本的形式显示在我的代码的图像视图下方。@Sal-您能发布到TorontoPATHNetworkMap_v.2018.08.pdf文件的链接吗?我可以教你怎么做你想做的。太好了!这是指向文件的链接-@Sal-在你的问题中,你说显示一个平面图,其中图像是1260 x 1000。。。但是你提供的链接给了我一个pdf文件,加载速度为2952 x 3600?抱歉,我已经更新了这个问题。我无意中保留了一个占位符大小。