这是我目前的观点:
- 黑色部分是scrollView。
- 在 scrollView 里面是 ImageView。
- 图片是横向的。
我想要实现的是通过设置minimumZoomScale使图像的顶部和底部适合scrollView。
最佳答案
假设您的布局很像 aspect fit 模式,那么您可以在顶部/底部或左侧/右侧设置黑色部分。您将需要检查哪个宽高比更大。检查以下内容:
func getZoomScaleToFillSize(_ contentSize: CGSize, inFrame viewFrame: CGRect) -> CGFloat {
let contentAspect = contentSize.width/contentSize.height
let panelAspect = viewFrame.width/viewFrame.height
if(contentAspect > panelAspect) {
// Means it will be black on top and on bottom
return contentAspect/panelAspect
} else {
// Means it will be black on left and right
return panelAspect/contentAspect
}
}
所以在这两种情况下我们都需要放大一点。在你的情况下 contentSize
应该是你的图像的大小。 viewFrame
应该是 ScrollView 的框架。结果应该是需要应用以使其“填充”的缩放量,黑色部分应该消失。
关于ios - 计算 scrollView 中的精确缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56886377/