在垂直布局的小型设备上,高度不正确吗?

时间:2018-07-13 11:34:57

标签: ios swift autolayout

目标是一种垂直布局,与示例图片中的屏幕视图的顶部/底部相匹配...

constraints woe

NSConstraints

的每个项目之间都有UIScrollView

但是在较小的设备屏幕(例如5S)上,它没有显示底部按钮

(即,当屏幕高度小于内容高度时)

是否存在每个UI元素的高度都固定的解决方案,或者我是否需要动态地计算每个高度,以便在没有UIScrollView的情况下适合较小的高度?

2 个答案:

答案 0 :(得分:2)

简而言之,

使用UIStackView

此问题。

  

“还是我可能需要动态计算每个高度,以便...”

实际上,这正是UIStackView的目的

要学习成为具有自动排版和约束的专家并不容易。这是一个精致而艺术的过程。

对于即将到来的挑战,我将从一个充满整个屏幕的大堆栈视图开始。堆栈视图本身可以很好地分隔所有内容。

enter image description here

您的堆栈视图参数可能是:

enter image description here

(从零间距开始)

您可能已经知道使用它们来测试每个设备的大小:

enter image description here

请注意,此外,在极端情况下,当缩小间隔时,您还必须确实让某些元素缩小(由您选择)。不幸的是,您必须掌握所有这些技术才能制作现代的反应式应用程序。


请注意,此布局的一个关键是您必须让空间随着其变小而折叠。确实,使用正确的设置,堆栈视图将为您做到这一点。

这是一个巨大的专业领域,一旦拥有,就需要问另一个问题

  • 取消了滚动视图

  • 使堆栈视图以基本方式工作

实际上,您已经在此处找到许多有关此问题的质量检查。


请注意,aBilal在评论中完全描述了这种情况:

  

“非常简单,打开情节提要,从底部的“视图”中选择“ iPhone SE”屏幕,并使用约束相应地重新排列所有屏幕。现在检查您的应用程序是否也适用于包括iPhone X在内的所有屏幕。

的确。就像说:

  

“所以你想当乔·沃尔什(Joe Walsh)。这很简单,购买一把吉他。将两只手放在另一端。现在弹奏。

:)有点像这样。

答案 1 :(得分:0)

在我看来,为屏幕添加滚动视图似乎不是最好的解决方案,因为屏幕上没有太多元素。

根据我的最佳实践是始终在应用程序要支持的最小屏幕设备上设计UI并相应地设置约束。我建议您也对这种情况做同样的事情。希望这会有所帮助。