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"]),