【问题标题】:UIImpactFeedbackGenerator impactOccurred Slight DelayUIImpactFeedbackGenerator ImpactOccurred 轻微延迟
【发布时间】:2017-03-19 21:25:54
【问题描述】:

我正在使用in Apple's developer docs 中描述的 UIImpactFeedbackGenerator,但在我调用 ImpactOccurred 和您感觉到触觉之间似乎有一点延迟 - 可能是十分之一秒或类似的时间。当我同时播放声音时,这一点尤其明显——声音明显先于触觉。

其他人在Apple Developer Forums 中写过同样的事情,但没有解决方案。

我使用以下命令初始化 UIImpactFeedbackGenerator:

// Set up impact
UIImpactFeedbackStyle sty = UIImpactFeedbackStyleMedium;
impactFeedbackGen = [[UIImpactFeedbackGenerator alloc] initWithStyle:sty];

立即调用prepare,并在影响发生前的几秒钟内重复调用:

[impactFeedbackGen prepare];

然后最后玩触觉,用:

[impactFeedbackGen impactOccurred];

不确定是否相关,但我正在在同一个应用中使用 UISelectionFeedbackGenerator,但不是同时使用。

想法? 谢谢!

【问题讨论】:

    标签: ios objective-c haptic-feedback


    【解决方案1】:

    我认为使用 UIImpactFeedbackGenerator 避免延迟的诀窍是何时调用 prepare

    显然你不能简单地调用prepare然后立即触发影响,因为引擎需要时间来实际准备。

    另一方面,一旦prepare 被调用,taptic 引擎将只会在很短的时间内(几秒钟)保持在准备状态,以节省电力。

    可以通过多次调用prepare来扩展prepared状态,但是这里你也要小心,因为在达到一定的阈值后,系统会将引擎恢复到空闲状态,并进一步忽略在触发影响之前调用prepare

    【讨论】:

    • 对,我也阅读了文档——我通常会提前大约 2 秒左右。我也尝试过更短和更长的时间范围,但总是有延迟。跨度>
    猜你喜欢
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    相关资源
    最近更新 更多