在iOS 17动态岛有能力与Button
和Toggle
互动。我希望在动态岛点击按钮时产生触觉效果。
正常的解决方案不工作在像UIImpactFeedbackGenerator.init(style: UIImpactFeedbackGenerator.FeedbackStyle.light).impactOccurred()
这样的动态岛。
在我做了很多尝试之后,我发现最古老的生成触觉的方法--AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate))
仍然可以工作。
但问题是AudioServicesPlayAlertSound可以播放短触觉吗?
答案是肯定的!
1条答案
按热度按时间hlswsv351#
免责声明:以下解决方案需要调用私有Apple API,AppStore提交中不允许调用。即使在这个时候苹果的自动检查没有捕捉到这一点,如果在未来发生变化(或手动审查捕获的行为),您的应用程序可能会被阻止。使用这个要自担风险。
要使用
AudioServicesPlaySystemSoundWithVibration
成功地制作一个简短的触觉,你必须调用AudioToolbox中的一个私有方法。但是对于今天的App Store来说,这是安全的,因为我的应用程序使用了这项技术已经通过了审查。我相信App Store的审查者不会在你的应用程序中使用这项技术。要创建它,您需要一个objective-c class:
(raw objective-c version)
A .M文件
最后,将这一行添加到Xcode为您创建的“YOU_PROJECT_NAME-Bridging-Header.h”文件中!
最后,你可以在你的Swift代码中调用这个方法(如果不起作用,重新启动你的
你会得到一个短,现代风格的触觉在你的动态岛!