如何缩放UIImage以适应UIScrollView的尺寸?

时间:2016-05-12 09:18:46

标签: ios swift uiscrollview uiimage scale

我的尺寸为300x600(高x宽)的UIImage。 UIImage的相对层次结构如下:

enter image description here

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

enter image description here

我已经设置了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自动处理宽度。

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

问题:我是否走在正确的轨道上?任何人都可以帮我开始使用一些骨架代码,这样我就可以根据自己的需要进行自定义。

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

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

1 个答案:

答案 0 :(得分:0)

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

正如我想的那样,这些约束对于他们的父母来说就像

UIView <--> UIScrollView <--> UIImageView 

但请尝试将其作为

UIView <--> UIImageView