简单地说,我有一个 UIScrollView
用于在该 View 内缩放的 View :UIImageView
。
当我捏的时候:
当我捏合后向下滑动时:
现在我有了不想看到的黑色空间。有没有办法设置一些偏移量并防止在图像后滚动太远?
在代码中我简单地使用:
//MARK: - UIScrollViewDelegate
public func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return photoImageView
}
最佳答案
简单地实现UIScrollViewDelegate
:
//MARK: - UIScrollViewDelegate
public func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return photoImageView
}
public func scrollViewDidZoom(_ scrollView: UIScrollView) {
let imageViewSize = photoImageView.frame.size
let scrollViewSize = scrollView.bounds.size
let verticalPadding = imageViewSize.height < scrollViewSize.height ? (scrollViewSize.height - imageViewSize.height) / 2 : 0
let horizontalPadding = imageViewSize.width < scrollViewSize.width ? (scrollViewSize.width - imageViewSize.width) / 2 : 0
if verticalPadding >= 0 {
scrollView.contentInset = UIEdgeInsets(top: verticalPadding, left: horizontalPadding, bottom: verticalPadding, right: horizontalPadding)
} else {
scrollView.contentSize = imageViewSize
}
}
并在 viewDidLoad
上准备 View :
private func setupInitialView() {
photoImageView.sizeToFit()
let imageViewSize = photoImageView.bounds.size
let scrollViewSize = scrollView.bounds.size
let widthScale = scrollViewSize.width / imageViewSize.width
let heightScale = scrollViewSize.height / imageViewSize.height
scrollView.minimumZoomScale = min(widthScale, heightScale)
scrollView.setZoomScale(scrollView.minimumZoomScale, animated: false)
scrollViewDidZoom(scrollView)
}
关于ios - 如何处理 UIImageview 的 UIScrollView 缩放中的偏移量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39745909/