在一个ScrollView中缩放和分页

时间:2019-03-10 17:52:25

标签: ios swift uiscrollview

我正在尝试创建类似照片库之类的东西。

但是现在我有问题,无法放大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的缩放。

1 个答案:

答案 0 :(得分:1)

您将需要根据UIScrollViewDelegate协议实施以下方法:

func viewForZooming(in: UIScrollView) -> UIView?

您将返回要缩放的视图。

现在,在这种情况下,您有多个图像视图(取决于imageArray.count),但我假设您想滚动到所有图像视图(即不是单个图像),所以最好的办法是添加“内容视图”( UIView)添加到滚动视图中,然后将单个图像视图添加到该视图中,而不是直接添加滚动视图并适当调整其大小。

然后,您可以在viewForZooming方法中返回该“内容视图”。

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

func viewForZooming(in: UIScrollView) -> UIView? {
    return self.contentView
}