Haptics 拥有一系列超轻量级的修饰符和函数,可以为任何 SwiftUI View 添加触感反馈。例如,当特定属性更改或等于特定值时,将自动触发反馈。
import SwiftUI
import Haptics
⋮
⋮
YourView()
.hapticFeedback(.selection, trigger: isSelected)
或以编程方式使用函数
HapticGenerator.performFeedback(.selection)
start: 表示活动已开始。(仅限 watchOS)stop: 表示活动已停止。(仅限 watchOS)alignment: 表示拖动项目的对齐。(仅限 macOS)decrease: 表示重要值已降低到低于显著阈值。(仅限 watchOS)increase: 表示重要值已增加到高于显著阈值。(仅限 watchOS)levelChange: 表示在离散压力级别之间移动。(仅限 macOS)selection: 表示 UI 元素的值正在更改。(iOS & watchOS)success: 表示任务或操作已完成。(iOS & watchOS)warning: 表示任务或操作产生某种警告。(iOS & watchOS)error: 表示发生错误。(iOS & watchOS)impact: 提供可用于补充视觉体验的物理隐喻。(iOS & watchOS)当值更改时播放触感反馈。
YourView()
.hapicFeedback(.selection, trigger: isSelected)
如果被监视的值发生更改,则返回要执行的 HapticFeedback。
返回 nil 表示 不执行 任何触感反馈。
您可以根据您的触发值提供不同的触感反馈。
YourView()
.hapicFeedback(trigger: workStatus) { _, newValue in
return switch {
case .success: .success
case .failure: .error
default: nil
}
}
.hapicFeedback(.impact, trigger: cameraSession.capturedPhoto) { _, newValue in
return newValue == true // Only plays feedback when photo has been taken
}
是的。
如果您想使用 .sensoryFeedback API 但需要支持较旧的平台,SwiftUI-Haptics 是一个更好的解决方案。
将 sensoryFeedback 替换为 hapticFeedback。
一切都正常运行。
在您的 Package.swift Swift Package Manager 清单文件中,将以下依赖项添加到您的 dependencies 参数中
.package(url: "https://github.com/LiYanan2004/SwiftUI-Haptics.git", .branch("main")),
将依赖项添加到您在清单文件中声明的任何目标中
.target(name: "MyTarget", dependencies: ["Haptics"]),