首页 > 解决方案 > 垂直布局的小型设备上的高度不正确?

问题描述

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

约束问题

NSConstraints在每个项目之间UIScrollView

但是在 5S 等小型设备屏幕上,它没有显示底部按钮

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

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

标签: iosswiftautolayout

解决方案


简而言之,

使用 UIStackView

对于这个问题。

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

事实上,这正是一个UIStackView

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

对于手头的挑战,我将从一个填满屏幕的大型堆栈视图开始。堆栈视图本身将很好地分隔所有内容。

在此处输入图像描述

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

在此处输入图像描述

(从零间距开始)

并且您可能知道使用这些来测试每个设备的大小:

在此处输入图像描述

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


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

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

  • 消除了滚动视图

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

事实上,您已经在这里找到了很多关于这个问题的 QA。


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

“这很简单,打开你的故事板,从底部的 View as 中选择“iPhone SE”屏幕,使用约束相应地重新排列所有屏幕。现在检查你的应用程序是否可以在包括 iPhone X 在内的所有屏幕上运行。

的确。这很像说:

“所以你想成为乔沃尔什。这很简单,买一把吉他。把一只手放在每一端。现在玩。很多。

:) 有点像那样。


推荐阅读