ios - 垂直布局的小型设备上的高度不正确?
问题描述
目标是与示例图像中的屏幕视图的顶部/底部相匹配的垂直布局......
我NSConstraints
在每个项目之间UIScrollView
但是在 5S 等小型设备屏幕上,它没有显示底部按钮
(即屏幕高度小于内容高度时)
是否有每个 UI 元素的固定高度的解决方案,或者我是否可能需要动态计算每个高度,以便在没有它的情况下UIScrollView
它会适合较小的高度?
解决方案
简而言之,
使用 UIStackView
对于这个问题。
“或者我可能需要动态计算每个高度,以便......”
事实上,这正是一个UIStackView
学习成为具有自动布局和约束的专家并不容易。这是一个精致而艺术的过程。
对于手头的挑战,我将从一个填满屏幕的大型堆栈视图开始。堆栈视图本身将很好地分隔所有内容。
您的堆栈视图参数可能是:
(从零间距开始)
并且您可能知道使用这些来测试每个设备的大小:
此外请注意,在极端情况下,当您用完要收缩的间隙时,您确实还必须让某些元素收缩(这是您的选择)。不幸的是,您必须掌握所有这些技术才能制作现代反应式应用程序。
请注意,此布局的一个关键是您必须让空间随着空间变小而折叠。事实上,堆栈视图将通过正确的设置为您准确地做到这一点。
这是一个巨大的专业领域,一旦你有这个问题,你就需要问另一个问题
消除了滚动视图
让堆栈视图以基本方式工作
事实上,您已经在这里找到了很多关于这个问题的 QA。
请注意,aBilal 在评论中准确描述了这种情况:
“这很简单,打开你的故事板,从底部的 View as 中选择“iPhone SE”屏幕,使用约束相应地重新排列所有屏幕。现在检查你的应用程序是否可以在包括 iPhone X 在内的所有屏幕上运行。
的确。这很像说:
“所以你想成为乔沃尔什。这很简单,买一把吉他。把一只手放在每一端。现在玩。很多。
:) 有点像那样。
推荐阅读
- django - 如何使用 django-taggit 删除将在 Django2.2 上未使用的帖子和删除标签
- swift - 为什么我的按钮显示不正确的字符串?
- c# - ASP.NET 核心。如果请求查询字符串为空,则创建 [FromQuery] 参数实例
- java - 如何将可选映射转换为 Java 中的流映射
- android - 每当用户尝试切换到另一个应用程序时,是否有任何更聪明的方法可以将我的应用程序置于顶部。请检查我在 onPause() 中的代码
- modelica - 如何继续模拟 Dymola 中更改参数的运动?
- python - 在 pandas 框架中读取无头的 Rdata
- android - 使用测试模式后Gradle构建失败?
- c++ - C++中的指针是按值传递的吗?
- python - ValueError:无法在空距离矩阵上确定观察次数