在一个ScrollView中缩放和分页

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

我正在尝试创建像照片库这样的东西。

但现在我有问题,放大UIScrollView。

for i in 0..<imageArray.count{
        let imageView = UIImageView()
        imageView.isUserInteractionEnabled = true
        imageView.image = imageArray[i]
        imageView.contentMode = .scaleAspectFit
        let xPosition = self.view.frame.width * CGFloat(i)
        imageView.frame = CGRect(x: 0, y: 0, width: self.scrollView.frame.width, height: self.scrollView.frame.height)
        scrollView.addSubview(imageView)

        scrollView.contentSize.width = scrollView.frame.width * CGFloat(i+1)
    }

    scrollView.isScrollEnabled = true
    scrollView.minimumZoomScale = 1.0
    scrollView.maximumZoomScale = 6.0
    scrollView.isUserInteractionEnabled = true
    scrollView.delegate = self

分页工作正常,但我现在不知道如何启用缩放每个imageView。

ios swift uiscrollview
1个回答
1
投票

您需要从UIScrollViewDelegate协议实现以下方法:

func viewForZooming(in: UIScrollView) -> UIView?

在其中,您将返回要缩放的视图。

现在在这种情况下你有多个图像视图(取决于imageArray.count),但我想你想要全部滚动到它们(即不是单个图像),所以最好的方法是添加一个'内容视图'(UIView)滚动视图,然后直接将单个图像视图添加到该视图而不是滚动视图,并适当地调整大小。

然后你可以在viewForZooming方法中返回'内容视图'。

因此,假设您已创建此“内容视图”,则该方法将如下所示:

func viewForZooming(in: UIScrollView) -> UIView? {
    return self.contentView
}
© www.soinside.com 2019 - 2024. All rights reserved.