ios - 计算 scrollView 中的精确缩放

标签 ios swift

这是我目前的观点:

enter image description here

  • 黑色部分是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/

相关文章:

ios - 如何重新加载导航栏

ios - 在 NSKeyedUnarchiver 对象中找不到 key

swift - 在表格 View 中选择多行并勾选所选的行

ios - 根据频率对数组元素进行排序

ios - 使用不同的谷歌帐户登录 Firebase iOS

swift - 如何使用默认导航项后退按钮创建展开转场?

android - IOS/安卓室内地图

ios - 为 ids 的 NSArray 构造 NSPredicate

iphone - ScrollView 中的 TextView 自动高度

swift - 比较强制展开的可选数组