0
的详细信息:奇怪的动画与UIDynamics后延迟
- 我使用
DispatchQueue.main.asyncAfter(deadline: ...
更新UISnapBehavior
,这会导致与卡行为管理单元(动画)相关联的视图到新的snapPoint
捕捉点。 - 我想更新三个圆形视图的
snapPoint
,其中每个视图都堆叠在另一个的顶部。 - 我想连续更新
snapPoint
。换句话说,我想让视图A在t0开始动画,在t1开始看B,在t2开始看动画。
问题:
动画的定时是奇异的。例如:
- 如果t0,t1和t2之间的差值为100毫秒,它们都会完全同时捕捉到它们各自的捕捉点。
- 但是,如果t0,t1和t2之间的差值为200毫秒,则视图A和视图B同时捕捉到它们各自的位置,但视图C在完全不同的时间后捕捉到它的新捕捉点比前两个。
- 更奇怪的是,如果t0,t1和t2之间的差异达到400毫秒,则单独查看A animates,并查看B和C一起生成动画。
- 最后,如果差值达到500毫秒,则每个视图在不同的时间进行动画处理。
这是怎么回事?
'dispatchAfter'确实如此;在一段时间后派遣*,实际的延迟可能会更长,但不会更短。实际的延迟取决于他的系统决定做什么。 – Paulw11
它的确如此......理论上。如果您重复上面所做的步骤,其值约为100毫秒(0.1秒),则所有事情都完全在同一时间发生。如果您使用计时器运行相同的代码,则动画按预期发生。我不知道为什么,但是尽管人们可能期望会发生这种情况。 – josephap
说“在* 4点来看我*”和“在* 4点之后来看我*”之间的区别。在第一种情况下,我预计在那里有权利。在第二种情况下,4:15是确定的。 – Paulw11