在 SwiftUI 中,通常不建议“手动”强制刷新视图,因为 SwiftUI 是声明式和状态驱动的。标准的做法是修改数据(State),视图会自动响应变化。 但是,在某些特殊场景下(例如处理旧的 UIKit 代码、复杂的 Combine 流、或者数据没变但需要重绘 Canvas),你确实需要手动触发更新。以下是几种常见的方法: 1. 使用 (针对 ObservableObject) 这是最正统的“手动”触发方式。如果你有一个遵循 协议的类,但你不想使用 属性(或者数据源在类外部),你可以手动调用 通知视图更新。 2. 使用 修饰符 (强制重置视图) 这是最暴力的刷新方式。当你改变一个视图的 时,SwiftUI 会认为这是一个全新的视图。它会销毁旧视图并重新创建新视图(包括重置所有的 )。 这常用于: 重置表单状态 重新触发 强制重新加载图片或复杂组件 3. 使用“哑状态” (Dummy State / Refresh Token) 如果你只是想让 重新计算一次,可以引入一个没有任何实际业务逻辑的 变量(通常是一个 或 ),在需要刷新时修改它。 4. 针对 Swift 5.9+ (...