
触觉反馈Haptics意图克制地使用触觉反馈来强化用户操作标签页选择、刷新、成功/错误并尊重用户偏好。核心模式将触觉触发集中到一个HapticManager或类似的工具中。将触觉反馈置于用户偏好和硬件支持之后。对不同 UX 时刻选择 vs 通知 vs 刷新使用不同的类型。示例简单的触觉管理器MainActorfinalclassHapticManager{staticletsharedHapticManager()enumHapticType{casebuttonPresscasetabSelectioncasedataRefresh(intensity:CGFloat)casenotification(UINotificationFeedbackGenerator.FeedbackType)}privateletselectionGeneratorUISelectionFeedbackGenerator()privateletimpactGeneratorUIImpactFeedbackGenerator(style:.heavy)privateletnotificationGeneratorUINotificationFeedbackGenerator()privateinit(){selectionGenerator.prepare()}funcfire(_type:HapticType,isEnabled:Bool){guardisEnabledelse{return}switchtype{case.buttonPress:impactGenerator.impactOccurred()case.tabSelection:selectionGenerator.selectionChanged()caselet.dataRefresh(intensity):impactGenerator.impactOccurred(intensity:intensity)caselet.notification(style):notificationGenerator.notificationOccurred(style)}}}示例用法Button(Save){HapticManager.shared.fire(.notification(.success),isEnabled:preferences.hapticsEnabled)}TabView(selection:$selectedTab){/* tabs */}.onChange(of:selectedTab){_,_inHapticManager.shared.fire(.tabSelection,isEnabled:preferences.hapticTabSelectionEnabled)}应保留的设计选择触觉反馈应微妙不要在每个细小的交互上都触发。尊重用户偏好提供关闭开关。让触觉触发点贴近用户操作而不是深埋在数据层中。陷阱避免在短时间内连续触发多次触觉反馈。不要假定触觉可用检查硬件支持。