SwiftUI系统控件尺寸修饰符controlSize
SwiftUI系统控件尺寸修饰符controlSize

SwiftUI系统控件尺寸修饰符controlSize

controlSize 是 SwiftUI 中用于控制系统控件尺寸等级的视图修饰符,主要影响按钮、开关、文本框、选择器、进度条等“系统控件”的整体视觉尺寸与内边距,而不是字体大小本身。

基本定义

类型定义:

func controlSize(_ size: ControlSize) -> some View

ControlSize 是一个枚举:

enum ControlSize {
    case mini
    case small
    case regular
    case large
    case extraLarge   // macOS 13+
}

不同平台支持略有差异:

macOS:全部支持(最完整)。

iOS:通常只明显区分 small / regular / large。

watchOS / tvOS:部分支持。

使用场景

controlSize可以影响系统控件尺寸。

例如:

1、按钮的高度和内边距。

2、TextField / SecureField 的高度。

3、Toggle / Picker 的尺寸。

Button("Clean") { }
    .controlSize(.small)

但是不会影响自定义绘制的视图和改变frame。

与font区别

1、.controlSize():控件整体尺寸体系(高度 + padding + 系统布局)。

2、.font():文本字号。

3、.frame():强制布局尺寸。

总结

controlSize可以控制表格行内按钮、状态栏工具等场景。

在macOS上,controlSize实际映射的是AppKit的NSControl.controlSize。

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注