使用自适应布局和情节提要在 XCode6 中实现 ScrollView

Posted

技术标签:

【中文标题】使用自适应布局和情节提要在 XCode6 中实现 ScrollView【英文标题】:Implementing ScrollView in XCode6 with Adaptive Layout and Storyboard 【发布时间】:2014-11-02 23:02:34 【问题描述】:

我有一个带有标签和按钮的输入页面太长,无法在任何 iPhone 的屏幕上显示。我想让用户垂直滚动以进行所有输入。

我想在故事板中进行布局。

我能找到的所有建议答案都可以处理不同的情况: - 全部按代码布局 - 内容是具有固有大小的图像 - 可以使用 autolayout/xcode 5,但我无法使用自适应布局和 xcode6

这就是我所说的视觉效果。黄色框是保存输入元素的视图。黑框代表随时可见。

根据我的研究,这是我尝试过的:

    在主视图中添加了一个完全填充它的 ScrollView。 (我认为这应该是黑色矩形。) 在滚动视图中添加了一个视图(作为内容容器)。 (黄色矩形) 添加了内容视图所需的元素。为了低于屏幕上可见的内容,我拖动并扩展了视图,使其足够大以容纳所有内容。 添加了将内容视图固定到所有侧面的滚动视图的约束。 添加了约束,使内容视图的宽度和高度与***视图相同。 为所有元素的宽度和高度以及从它们的侧面到容器视图的侧面添加了约束。

我在模拟器中得到的:只有可以适应原始屏幕尺寸的元素。

任何人都可以帮助解决我认为必须是常见问题的问题吗?

谢谢。

【问题讨论】:

请为滚动视图添加约束,它将滚动视图与视图控制器的主视图绑定。不要使用高度或宽度约束,只使用用户填充约束,如尾随、前导、顶部、底部空间。 @hardick hadwani 谢谢。这样就整理好了。我将在下面发布我认为可以使其正常工作的最小限制条件。 @hardik hadwani 抱歉拼写错误,谢谢! 【参考方案1】:

感谢 hardik,我想我已经解决了这个问题。我所做的大部分事情都是正确的,但是我缺少一组关键的约束(而且我还有一个我不需要或不想要的额外约束。)

这是我认为可以使用的方法以及使其工作的最小限制。

    在主视图中添加一个滚动视图。让滚动视图填满整个视图。 在滚动视图中添加内容视图。根据需要展开它以添加您的内容(标签、按钮等) 添加约束,将内容视图固定到所有侧面的滚动视图。 将内容视图的约束固定宽度添加到主视图的宽度——而不是滚动视图的宽度。不理会身高。 (高度限制是我不需要的多余部分。) 添加约束,将滚动视图固定到所有侧面的主视图。 (这是关键的补充。)

现在您需要在内容视图中添加约束来布置内容。这些显然根据您的情况而有所不同。我需要有完全从上到下和从一侧到另一侧定义布局的约束。

【讨论】:

以上是关于使用自适应布局和情节提要在 XCode6 中实现 ScrollView的主要内容,如果未能解决你的问题,请参考以下文章

使用自动布局时标签不会调整大小,情节提要中的约束

ios8/xcode6.1:在情节提要中设置时在运行时忽略自定义字体

如何使用 Xcode 4.3 在情节提要中实现 UIModalTransitionStylePartialCurl?

在情节提要中居中

Xcode 6.3 错误 - 无法在情节提要中创建 IBOutlet 引用或使用自定义 UIViewController

iOS 5 在现有应用程序中实现带有情节提要的页面控制器