【问题标题】:How can I set two textboxes in one line for iPad?iPad如何在一行中设置两个文本框?
【发布时间】:2017-06-15 16:39:10
【问题描述】:

我使用 xCode 8.1。 我在 iPhone 的一列中有两个文本框(纵向模式):

如何使用自适应设计在 iPad 和 iPhone 的横向模式下将这些文本框显示为一行?

【问题讨论】:

标签: ios swift xcode xcode8 adaptive-design


【解决方案1】:

按照纵向显示的方式放置文本框

假设你想让Name留在原地,你只需要改变Surname上的约束

您应该为Surname 定义一个TopSpace 和一个Leading Space - 依次选择每个约束,然后单击Installed 旁边的+ 按钮- 这为您提供了引入变化的选项,因此请单击@987654330 @ 然后de-选择初始默认值。

这意味着这两个限制仅适用于纵向模式的 iPhone(Compact/Regular

切换到横向模式,并将Surname 定位在您需要的位置。应用约束 - 使用 Name 和前导间距的垂直中心。选择这两个约束,然后重复创建变体的过程,但现在它们将只为 iPhone 横向创建(紧凑/紧凑)。

现在切换到 iPad,并重复您对横向执行的过程,这将创建 iPad 约束(常规/常规)

这应该是你需要的一切。如果它不起作用,或者您在情节提要中看到红线,则很可能意味着您已为 所有 方向保留了活动的 Surname 约束之一 - 同时具有冲突的约束具体细节 - 如果找不到哪个,请删除约束并重新开始:-)

这是一个屏幕截图,显示了您添加变体的位置

这是添加特定于纵向的约束后的样子

【讨论】:

  • 感谢您的帮助,罗素
【解决方案2】:

在 Xcode 8 中执行此操作的关键是编辑器右下方的 Vary For Traits 按钮。

  • View as 列表中选择一个 iPad,然后像对 iPad 一样设置约束。

  • 然后选择一部 iPhone,点击Vary For Traits,然后选择width

  • 现在,选择 iPhone 上未使用的任何约束,然后点击删除。这不会完全删除它们,它只是卸载它们针对该尺寸等级

  • 然后添加 iPhone 所需的约束。这只会增加紧凑宽度尺寸类的约束

  • 完成后,点击Done Varying

  • 等等……

[[

【讨论】:

    【解决方案3】:

    另一种方法是使用具有不同特征的堆栈视图。 选择 Interface builder 中的两个字段,然后在右下角按 Stack 按钮。

    然后选择堆栈视图并打开属性检查器选项卡。

    添加基于宽度的变体,并为此变体(常规宽度)将轴设置为水平。

    完成。

    注意:如果您的部署目标低于 iOS 9,请不要使用堆栈视图。

    【讨论】:

    • 好主意!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多