【发布时间】:2016-11-23 22:02:46
【问题描述】:
我实际上面临着仅使用 故事板约束 使我的 UIScrollView 完全响应的困难。
这是我的层次结构:
> - UIViewController
> - UIView
> - UIScrollView
> - contentView
> - module1View
> - module2View
> - module3View
所有模块都用于显示图表。 我希望他们反应灵敏。我希望它们的宽度为屏幕的 100%,并且它们的高度由使用约束添加的 ratio 定义。这些模块彼此相邻显示,就像新闻源中的新闻一样。
我的问题是:如何设置contentView 高度等于所有模块的总和(模块 1 + 2 + 3)?
也就是说我想实现:
- contentView 顶部 = 模块 1 顶部
- 模块 2 的顶部 = 模块 1 的底部
- 模块 2 的顶部 = 模块 2 的底部
- contentView 底部 = 模块 3 底部
为了做到这一点,我遵循了一些在互联网上找到的教程。以下是我遵循的步骤:
- 设置
UIScrollView约束以定义其位置和位置。 - 将
UIScrollViewtop、bottom、left和right间距设置为与最近的邻居0. - 设置模块之间的约束,将它们“堆叠”在一个 其他。
-
(I'M BLOCKED HERE) 将
contentView的底部设置为 模块 3 的底部允许UIScrollview滚动到末尾 内容。
我试图强制UIScrollView 的高度:它有效,但没有响应。由于模块的高度是通过比例计算的,根据设备的不同,高度“模块1+2+3”同时变化。
我尝试将模块 3 的约束添加到 contentView 以设置模块 3 的底部 = contentView 的底部。所有的约束都变成红色,到处都是警告。
您知道如何根据响应式内容设置contentView 的高度吗? (例如“以某种方式包装内容)。
提前感谢您的帮助!
【问题讨论】:
-
一旦你根据它们的比例设置模块的高度,你应该能够计算 contentView 的高度
-
我尝试在 ViewDidLoad 和 viewWillAppear 中添加:
mainContentView.frame = CGRectMake(0, 0, self.view.width, module1View.height+module2View.height+module3View.height);,它们都不起作用 -
什么时候设置模块的框架?设置模块框架后,您需要设置 mainContentView 框架...模块是什么类型的对象?
标签: ios objective-c uiscrollview xcode-storyboard