我正在尝试创建像照片库这样的东西。
但现在我有问题,放大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。
您需要从UIScrollViewDelegate
协议实现以下方法:
func viewForZooming(in: UIScrollView) -> UIView?
在其中,您将返回要缩放的视图。
现在在这种情况下你有多个图像视图(取决于imageArray.count),但我想你想要全部滚动到它们(即不是单个图像),所以最好的方法是添加一个'内容视图'(UIView)滚动视图,然后直接将单个图像视图添加到该视图而不是滚动视图,并适当地调整大小。
然后你可以在viewForZooming
方法中返回'内容视图'。
因此,假设您已创建此“内容视图”,则该方法将如下所示:
func viewForZooming(in: UIScrollView) -> UIView? {
return self.contentView
}