我正在使用U in Apple's developer docs所描述的UIImpactFeedbackGenerator,但是当我调用impactOccurred和你感觉触觉时,似乎有一点延迟 - 可能是十分之一秒或类似的。当我同时播放声音时,这一点尤其明显 - 声音明显位于触觉之前。
其他人在Apple Developer Forums中写过同样的事情,但没有解决。
我用以下内容初始化UIImpactFeedbackGenerator:
// Set up impact
UIImpactFeedbackStyle sty = UIImpactFeedbackStyleMedium;
impactFeedbackGen = [[UIImpactFeedbackGenerator alloc] initWithStyle:sty];
立即拨打电话准备,并在影响发生前的几秒钟内反复拨打电话:
[impactFeedbackGen prepare];
然后终于播放了触觉,用:
[impactFeedbackGen impactOccurred];
不确定它是否相关,但我是在同一个应用中使用UISelectionFeedbackGenerator,但不能同时使用。
思考? 谢谢!
答案 0 :(得分:1)
我认为避免UIImpactFeedbackGenerator延迟的诀窍是何时调用prepare
。
显然你不能简单地调用prepare
然后立即触发影响,因为引擎需要时间来实际准备。
另一方面,一旦调用prepare
,taptic引擎将只在短时间内(几秒钟)保持准备状态,以节省电力。
可以通过多次调用prepare
来扩展准备状态,但是你也必须小心,因为在某个阈值之后,系统会将引擎恢复到空闲状态,并且在触发影响之前,请忽略对prepare
的进一步调用。