垂直布局的小型设备上的高度不正确? [关闭]

Posted

技术标签:

【中文标题】垂直布局的小型设备上的高度不正确? [关闭]【英文标题】:Height incorrect on small device on vertical layout? [closed] 【发布时间】:2018-07-13 11:34:56 【问题描述】:

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

我在UIScrollView 中的每个项目之间都有NSConstraints

但在 5S 等小型设备屏幕上却不显示底部按钮

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

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

【问题讨论】:

你用过Auto-Layout with比例约束吗? 垂直我没有使用比例约束我为所有元素固定高度 很简单,打开你的storyboard,从底部的View as中选择“iPhone SE”屏幕,使用约束相应地重新排列所有屏幕。现在检查您的应用是否可以在包括 iPhone X 在内的所有屏幕上运行。 这个问题绝对和完全有一个完全清楚的问题陈述,一个准确,具体的例子,以及对确切问题的准确描述。我认为我没有从“新手”那里看到更好的问题。令人难以置信的是它被关闭了。 This question is being discussed on meta. 【参考方案1】:

总之,

使用 UIStackView

针对这个问题。

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

事实上,这正是UIStackView的目的

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

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

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

(从零间距开始)

您可能知道使用这些来测试每个设备的尺寸:

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


请注意,此布局的一个关键是您必须让空间随着空间变小而折叠。事实上,堆栈视图会为您提供正确的设置。

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

消除了滚动视图

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

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


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

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

确实如此。这很像说:

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

:) 有点像。

【讨论】:

嵌入所有尺寸的滚动视图中 不是真的男人,他想避免滚动 - 但是,你必须考虑极端情况。这家伙才刚刚开始——一次只做一件事:) 嗯,这是一个很好的建议,我会尝试使用它,但我不确定如何使用堆栈视图,所以我想知道使用滚动视图是当前情况的唯一解决方案?我想知道该怎么做目前情况下 在这种情况下无论如何都不要使用滚动视图 您必须删除您的滚动视图。请注意,Sh_Khan 所说的是“高级提示”。老实说,它现在与您无关。他说的是非常极端的情况,即使是最小的布局也不适合。此时,您应该完全删除滚动视图,并使其与堆栈视图一起使用 - 如果您是新手,这将是很多工作。【参考方案2】:

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

在我看来,最佳做法是始终在应用程序支持的最小屏幕设备上设计 UI,并相应地设置约束。我建议你在这种情况下也这样做。希望这会有所帮助。

【讨论】:

以上是关于垂直布局的小型设备上的高度不正确? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Owl Carousel 在高度不相等时垂直对齐每个项目

关闭自动布局似乎会改变屏幕的高度

具有高度的 IE11 垂直弹性框布局:自动和溢出不起作用

flex 布局水平垂直居中,内部区域高度超出外部区域高度时的bug

flex 布局水平垂直居中,内部区域高度超出外部区域高度时的bug

CSS 布局:移动、垂直布局、页眉(固定高度)、页脚(固定高度)。如何用img填充剩余空间,受高度和宽度限制