计算minimumZoomScale的代码在iOS 8和iOS 9上的行为有所不同

Pau*_*nov 6 scroll image view zoom ios

几个月前,我写了一个代码,以适应UIImageViewUIScrollView以最小的一面,有放大的能力UIImageView和缩小.此代码在iOS 8中完美运行,但在iOS 9中,它UIImageView放在UIScrollView大小错误的内部.以下是不同操作系统上的示例(不介意本地化差异):

iOS 8

iOS 8的结果

iOS 9

iOS 9的结果

该代码用于计算缩放级别(在Swift中):

let imageRatio = image.size.height / image.size.width
let scrollRatio = scrollView.frame.size.height / scrollView.frame.size.width

if imageRatio > scrollRatio {
    scrollView.minimumZoomScale = scrollView.frame.size.width / image.size.width
}else{
    scrollView.minimumZoomScale = scrollView.frame.size.height / image.size.height
}

if scrollView.minimumZoomScale > 1 {
    scrollView.maximumZoomScale = scrollView.minimumZoomScale
}else{
    scrollView.maximumZoomScale = 1
}

scrollView.zoomScale = scrollView.minimumZoomScale

let x = (scrollView.contentSize.width / 2) - (scrollView.bounds.size.width / 2)
let y = ((scrollView.contentSize.height / 2) - (scrollView.bounds.size.height / 2)) * scrollView.minimumZoomScale

scrollView.contentOffset = CGPointMake(x, y)
Run Code Online (Sandbox Code Playgroud)

我使用自动布局功能.那么,问题是如何在iOS 9上实现iOS 8行为?