【问题标题】:How to scale UIImage to fit dimensions of UIScrollView?如何缩放 UIImage 以适应 UIScrollView 的尺寸?
【发布时间】:2016-05-12 09:18:46
【问题描述】:

我有一个尺寸为 300x600(高 x 宽)的 UIImage。 UIImage的相对层次是这样的:

使用 AutoLayout,我为 UIImageView、UIScrollView 和 UIVIew 设置了以下约束:

我已将 TableView 的相对高度尺寸设置如下:

// Setting Last Row to height = 70 pixels and first row to fill balance of screen:
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    if indexPath.row == 1 { return 70 }
    else { return tableView.frame.size.height - 70 }
}

我想要 UIImage 的 height 与它所在的 UISCrollView 的高度完全匹配。我不关心 UIImage 的最终宽度,但希望遵循“AspectFit”的范围。所以我可能会雇用

imageView.contentMode = UIViewContentMode.ScaleAspectFit

...可能在

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
}

我会设置UIScrollView的动态高度和宽度参数,然后设置UIImage高度跟随UISCrollView的高度,让ScaleAspectFit自动处理宽度。

我尝试了各种代码版本来实现这一点,但都未能达到预期的效果。

问题:我走对了吗?任何人都可以让我开始使用一些框架代码,以便我可以根据需要对其进行自定义。

旁注:我只允许我的应用使用纵向模式。没有风景。

非常感谢您的关注和时间;)

【问题讨论】:

  • 不知道我是否理解正确,我将创建一个容器UIView 来保存确切的UIScrollView然后我可以创建滚动视图子UIImageView 的约束到容器视图的,即相等的高度。
  • 这些约束是给他们的父母的,我想像UIView UIScrollView UIImageView 但尝试约束为UIView UIImageView跨度>
  • 嗨。伟大的想法。我添加了等高约束(从子UIImageView 到容器UIView),并且还将IB 中UIImageView 的视图-> 模式更改为“Aspect Fill”。现在高度完美了,但是宽度缩短到UIImageView的左右。
  • 'AspectFill' 裁剪您的图像以适合图像视图,此链接可能有助于理解并找到解决方案http://blogs.innovationm.com/image-handling-in-ios/
  • 尤里卡!!我在 IB 中为子 UIImageView 的约束选择了“纵横比”,现在图像 (UIImageView) 已完美缩放!

标签: ios swift uiscrollview uiimage scale


【解决方案1】:

我会创建一个容器 UIView 来保存确切的 UIScrollView 然后我可以创建滚动视图的子视图 UIImageView 到容器视图的约束,即相等的高度。

我想,这些限制对他们的父母来说就像

UIView <--> UIScrollView <--> UIImageView 

但试试看

UIView <--> UIImageView

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多