如何在 Xcode 中使元素具有百分比宽度

Posted

技术标签:

【中文标题】如何在 Xcode 中使元素具有百分比宽度【英文标题】:How do I make elements a percentage width in Xcode 【发布时间】:2017-12-15 12:18:31 【问题描述】:

我是 Xcode 的新手,以前开发过混合应用,所以决定学习 swift。语言本身很容易学习,我用多种语言编写代码。但我不明白为什么Xcode 不允许我在事物上使用百分比宽度!

第一个屏幕截图显示 iPhone 8 plus 上的 4 个按钮彼此相邻,但第二个屏幕截图是当我更改为 iPad 时,您可以看到这些框没有调整大小以适应。

它不允许我输入视图的百分比 (25%) 那么我应该如何让它们都适合不同的设备?我知道约束,但我不知道它需要什么约束 a) 让它们都保持在视图的 25% b) 所以它们彼此相邻并调整大小。

在尝试接受的答案后它起作用了,但是当我尝试添加第二行做同样的事情时,会发生以下情况:

为第一行设置约束:

为第二行设置约束:

结果:

为什么它适用于第一行而不是第二行?

【问题讨论】:

您可以在视图宽度和第一个按钮宽度之间设置 4:1 的纵横比约束。然后创建约束,使其他每个按钮都等于第一个。 这可以使用带有自动布局的 UIStackView 来实现。阅读有关 AutoLayout 和 StackView 的信息,您将了解如何正确设置 UI。 删除标记Contraint to margins并重置所有约束 好的,谢谢 【参考方案1】:

在单个容器视图中添加所有按钮。为所有按钮分配相等的宽度约束,彼此之间没有间距(相邻视图/按钮)和父视图。

试试这个看看:

这是 iPhone 4s 和 8+ 预览的结果:

iPad 的结果:

【讨论】:

唯一的问题是,如果我尝试再次做完全相同的事情,但在底部有一行它不起作用 你能分享你的代码/接口文件吗,所以我可以看到,你到底在做什么,哪里还有问题?我一定会解决你关于这个界面设计的所有问题。 按照您的指示,我用屏幕截图编辑了我上面的问题。第一行它起作用了,但是当试图在第二行按钮上做同样的事情时,它会左右留下一个白色的间隙。然后,如果我尝试将它们全部拖到底部然后更改设备,缩放将停止工作并且它们不会粘在底部。也许我应该阅读更多关于约束的内容! 检查 iPad 中的 smae 并告诉我,结果如何? 所有设备上的结果相同【参考方案2】:

您必须将每个按钮的宽度设置为超级视图的宽度,并将约束的乘数设置为 0.25

【讨论】:

以上是关于如何在 Xcode 中使元素具有百分比宽度的主要内容,如果未能解决你的问题,请参考以下文章

打开具有可变宽度的关闭侧菜单(在 xcode 中)

jquery如何获得宽度为百分比的元素的宽度?

如何获取html元素的宽度并将像素转换为百分比[关闭]

具有百分比宽度的响应式 CSS 三角形

如何制作具有相同宽度百分比的响应式表格?

如何使选择元素缩小到字段集中的最大宽度百分比样式