跳转到内容

sensoryFeedback(trigger:_:)

当提供的 trigger 值发生变化后,从 feedback 闭包返回时播放反馈。

TIP

iOS 17.0+ iPadOS 17.0+ Mac Catalyst 17.0+ macOS 14.0+ tvOS 17.0+ visionOS 26.0+ Beta watchOS 10.0+

swift
nonisolated
func sensoryFeedback<T>(
    trigger: T,
    _ feedback: @escaping () -> SensoryFeedback?
) -> some View where T : Equatable

参数

trigger

用于监控变化以确定何时播放的值。

feedback

一个闭包,用于确定当 trigger 发生变化时,是否播放反馈以及播放哪种类型的反馈。

讨论

例如,你可以为不同的状态转换播放不同的反馈:

swift
struct MyView: View {
    @State private var isExpanded = false


    var body: some View {
        ContentView(isExpanded: $isExpanded)
            .sensoryFeedback(trigger: isExpanded) {
                isExpanded ? .impact : nil
            }
    }
}

当该值发生变化时,将调用闭包的新版本,因此任何被捕获的值都将具有被观察值更新后的值。

贡献者

The avatar of contributor named as wangqiyangX wangqiyangX

页面历史

基于 MIT 许可发布