【发布时间】: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的约束到容器视图的,即相等的高度。 -
这些约束是给他们的父母的,我想像
UIViewUIScrollViewUIImageView但尝试约束为UIViewUIImageView跨度> -
嗨。伟大的想法。我添加了等高约束(从子
UIImageView到容器UIView),并且还将IB 中UIImageView的视图-> 模式更改为“Aspect Fill”。现在高度完美了,但是宽度缩短到UIImageView的左右。 -
'AspectFill' 裁剪您的图像以适合图像视图,此链接可能有助于理解并找到解决方案http://blogs.innovationm.com/image-handling-in-ios/
-
尤里卡!!我在 IB 中为子
UIImageView的约束选择了“纵横比”,现在图像 (UIImageView) 已完美缩放!
标签: ios swift uiscrollview uiimage scale