ActivityKit|通过 activityBackgroundTint 设置实时活动卡片背景色调
修改实时活动锁屏卡片的背景,有两种方式:
.activityBackgroundTint().containerBackground(for: .widget)
使用 activityBackgroundTint 设置背景色调
设置 Liquid Glass 玻璃效果()
如果要设置 iOS 26 系统默认的液态玻璃效果,只需添加 .activityBackgroundTint(.clear) 即可。

如果不添加这个修饰器并指定 .clear,默认会显示为偏蓝色的背景色,原因未知:

建议在子组件内部设置,例如 PickupActivityLockScreenView 组件内部最外层的 VStack 上设置,在这里统一设置 .activityBackgroundTint(.clear) 或 .background,更加统一。

下面这个 Reddit 帖子中也有讨论这个修饰器:
Liquid Glass live activity widget. How?
by u/Nilsolivier in SwiftUI
色调的限制
需要特别注意,.activityBackgroundTint 修饰器只会设置“色调”而非“背景色”。

上面这个截图是分别将 activityBackgroundTint 设置为 .blue,.black 和 .white 的效果。注意,他们无法创建纯黑色或纯白色的背景效果,只是给背景添加一层色调。
使用 containerBackground 设置背景色
containerBackground 设置背景色经过测试,下面这个方法在 iOS 26 上不生效,原因未知。
使用 containerBackground 可以直接设置背景颜色 —— 但注意: .clear无法创建液态玻璃效果。

直接在 View 视图设置背景色
经过测试,直接在 LiveActivity 的对应视图上最外层添加 .background 即可设置背景色。
例如,在 PickupActivityLockScreenView 锁屏实时活动 UI 上设置:

常见问题
Xcode Preview 不生效
截止 Xcode 26.2 (17C52) 版本,activityBackgroundTint 在 Xcode Preview 中似乎不生效,他们会始终显示为primary 颜色,但在真实设备上有效。

Comments ()