使用自动布局创建对齐的表单
Using auto-layout to create an aligned form
我想在 Swift5 iOS 应用程序中创建对齐形式的输入屏幕,看起来像
╔══════════════╦═══════════════════════════════╗
║ Name ║ [ text field ] ║
║ Phone number ║ [ text field ] ║
║ Fax number ║ [ text field ] ║
╚══════════════╩═══════════════════════════════╝
(没有线条)这样标签和字段可以针对不同的屏幕尺寸合理缩放。我知道我可以在垂直堆栈视图中使用水平堆栈视图,但要使文本字段对齐,我要么必须为标签提供固定大小,要么为水平堆栈视图提供固定比例。有更好的选择吗?
您不必使用堆栈视图。相反,使用普通约束:
- 限制文本字段的左、右和垂直间距 - 彼此(或安全区域)。
- 将每个标签基线约束到每个文本字段。
- 将标签限制在安全区域。
- 使用 >= 关系将每个标签的权利限制在每个文本字段中。
我想在 Swift5 iOS 应用程序中创建对齐形式的输入屏幕,看起来像
╔══════════════╦═══════════════════════════════╗
║ Name ║ [ text field ] ║
║ Phone number ║ [ text field ] ║
║ Fax number ║ [ text field ] ║
╚══════════════╩═══════════════════════════════╝
(没有线条)这样标签和字段可以针对不同的屏幕尺寸合理缩放。我知道我可以在垂直堆栈视图中使用水平堆栈视图,但要使文本字段对齐,我要么必须为标签提供固定大小,要么为水平堆栈视图提供固定比例。有更好的选择吗?
您不必使用堆栈视图。相反,使用普通约束:
- 限制文本字段的左、右和垂直间距 - 彼此(或安全区域)。
- 将每个标签基线约束到每个文本字段。
- 将标签限制在安全区域。
- 使用 >= 关系将每个标签的权利限制在每个文本字段中。