SwiftUI Academy · 课时

禁用和启用按钮

使用 disabled 修饰符控制交互性。

第 4 / 4 课13 个步骤

禁用和启用按钮 是 CoddyKit 上的免费 SwiftUI Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 SwiftUI Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 SwiftUI Academy 课程共包含 4 节课。

有时点击应该等待

并非每个按钮都应该始终可以点击。例如,提交按钮可能要等表单有效后才能使用。SwiftUI 通过 disabled 修饰符处理这种情况。🚦

disabled 修饰符

为任意控件添加 disabled,并传入 true 或 false。传入 true 时,按钮会立即停止响应点击。

Button("Send") { send() }
    .disabled(true)

使用条件控制

不要传入固定值,而是传入一个条件。随着底层数据变化,按钮会自动启用或禁用。

Button("Send") { send() }
    .disabled(message.isEmpty)

与状态关联

将 disabled 与一个状态值配对后,SwiftUI 会在每次变化时重新评估它。数据一更新,按钮就会立即作出响应。

@State private var name = ""

Button("Save") { save() }
    .disabled(name.isEmpty)

变暗效果

禁用的按钮会自动显示为变暗。这一视觉提示会告诉用户它还未准备好,无需您额外设置样式。

验证表单

一个经典用途是表单验证:在所有必填字段都通过检查前,保持操作按钮不可用。

Button("Register") { register() }
    .disabled(!isFormValid)

防止重复点击

执行耗时任务时,请禁用按钮,避免用户再次点击。在任务运行期间,将加载中标志设为 true。

Button("Upload") { startUpload() }
    .disabled(isLoading)

禁用整个分组

将 disabled 应用于容器后,其中的每个控件都会继承这一设置。一个修饰符就能同时锁定整个区域。

VStack {
    Button("A") { a() }
    Button("B") { b() }
}
.disabled(isLocked)

子视图无法重新启用

父视图禁用后,子视图无法自行重新启用。整个链条中限制最严格的 disabled 值会生效。

禁用状态仍然传达信息

禁用的按钮并不是出了问题,而是在如实传达状态。它表示某个操作目前不可用,引导用户先完成应做的事情。

翻转值即可启用

要重新启用,只需再次让条件变为false。更新它所依赖的状态后,SwiftUI 就会让按钮恢复可用。

Button("Confirm") { confirm() }
    .disabled(!agreedToTerms)

快速检查

最后检查一下启用和禁用。

回顾

太棒了!disabled 修饰符会根据条件锁定按钮、自动使其变暗,并在值翻转回来时重新启用。🚦

免费开始

用 AI 导师学习 Swift — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
30
课程
120

常见问题解答

「禁用和启用按钮」课时是免费的吗?

是的 — 「禁用和启用按钮」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 SwiftUI Academy 课程的其余内容,请升级到 CoddyKit PRO。 SwiftUI Academy 课程共包含 4 节课。

「禁用和启用按钮」这节课中我会学到什么?

使用 disabled 修饰符控制交互性。 你通过在浏览器中直接运行的动手代码来练习 SwiftUI Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 SwiftUI Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 SwiftUI Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「禁用和启用按钮」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 SwiftUI Academy 课中编写并运行代码吗?

能。每节 SwiftUI Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 创建可点击的按钮
  2. 设置按钮样式
  3. 点击时运行代码
  4. 禁用和启用按钮
← 返回 SwiftUI Academy