ios - 如何处理 UIImageview 的 UIScrollView 缩放中的偏移量?

标签 ios swift uiscrollview

简单地说,我有一个 UIScrollView 用于在该 View 内缩放的 View :UIImageView

这是我只显示图像时的样子: enter image description here

当我捏的时候:

enter image description here

当我捏合后向下滑动时:

enter image description here

现在我有了不想看到的黑色空间。有没有办法设置一些偏移量并防止在图像后滚动太远?

在代码中我简单地使用:

//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/

相关文章:

ios - 防止 UITextField 标记被覆盖

ios - 在 Xcode 6 iOS 8 中使用框架中的 Storyboard

iPhone UIScrollView 如何正确缩放 View ?目前它的高度没有适当调整

ios - UIS ScrollView 。如何区分捏合缩放和捏合缩放?

ios - 在按下向上/向下按钮时平滑地向上和向下移动 ScrollView 。 objective-c

ios - 如何键入自动完成中显示的方法名称的下一部分?

iOS 客户端证书和移动设备管理

ios - Alamofire 接受和内容类型 JSON

ios - 如何使用 PNG 蒙版剪辑模糊的 UIVisualEffectView?

ios - 通过 PFInstallation 订阅 channel 时遇到问题