当前位置: 首页 > 知识库问答 >
问题:

UIView动画与延迟块UI交互?

令狐增
2023-03-14

UIView animateWithDuration的文档称,在动画期间,所有用户交互都被阻止。但我想知道它是否也会在预动画延迟期间阻塞。

文件上说

“在动画制作过程中,将暂时禁用正在制作动画的视图的用户交互。(在iOS 5之前,将禁用整个应用程序的用户交互。)如果希望用户能够与视图交互,请在选项参数中包含UIViewAnimationOptionAllowUserInteraction常量。"

同样的,当我说一秒钟的延迟时,我也会说一秒钟的延迟。我猜不会是这种情况,因为延迟参数的文档显示:

“开始动画之前等待的时间(以秒为单位)。请指定值0以立即开始动画。”

在开始动画之前有一些关键词,而关于阻止用户交互的注释则在动画期间讨论。

但是,我的应用程序在预动画延迟期间不会更新用户界面。延迟是否也会阻止用户界面交互,还是我的用户界面因其他原因而被阻止?

共有1个答案

齐甫
2023-03-14

我可以确认,在动画开始之前的延迟期间,UI被阻止。说实话,我很惊讶。

 类似资料:
  • 我想安排一系列动画,在屏幕上动画介绍文字。最后一个动画在完成时,应该触发运行游戏的游戏勾号逻辑。 出于某种原因,一切都在立即发生。有人能解释为什么会发生这种情况吗?或者有更好的选择吗?

  • 我最近发现了一些UIView动画代码,并注意到它没有正确使用animateKeyframesWithDuration:delay:options:animations:completion:方法,并且一直在尝试修复它,但由于某些原因,动画不完全相同。 以下是我找到的代码: 这有两个问题: 应该真正使用关键帧动画,而不是在完成块中嵌套动画 使用animateKeyframesWithDuration

  • 我有一个动画块来执行一个简单的基于变换的动画,在完成时从它的超级视图中删除有问题的视图。 然后我使用Tech Q详述的代码 但是,此代码不会阻止完成代码的执行。因此,为了防止代码执行,我将完成代码更改为: 当检查finished==TRUE时,动画块暂停时,将阻止执行完成代码。如果在“取消暂停”动画之前超过持续时间,则不会执行完成代码。即在本例中,msgView仍保留在superview中。 是否

  • 我在我正在开发的应用程序中发现了一个奇怪的错误。在我进入细节之前,我将陈述我的问题 1-为什么不能调用UIView动画完成块 2-为什么在显示模式视图后会调用UIView动画完成块? 我有一系列UIView动画,它们在视图控制器出现后开始。他们有完成块。绝大多数情况下,动画完成块都会被调用。但每隔一段时间,应用程序就会进入一种状态,完成块不会被调用。 此外,当我从当前视图控制器模态地呈现一个新的视

  • 我假设在底部移动脚本与使用defer或async属性相同。由于defer和async不完全兼容传统浏览器,因此我选择在页面底部加载脚本。 在此之前,我运行了性能基准测试工具,如GTmetrix和Google PageSpeed insight。两者都显示“渲染阻塞”参数是主要问题。我现在有点困惑,因为即使我移动了底部的这些脚本以允许首先加载内容/html;这些工具仍然报告渲染阻塞是一个主要问题。

  • 每当此动画结束时,我都会尝试调用一个方法,但在某些情况下,例如,当用户离开应用程序时,它的完成块永远不会被调用。此外,当VC与UIView动画同时出现时,完成块永远不会被调用。 即使动画以某种方式中断,我应该如何确保调用回调?我是否应该根本不使用UIView动画完成块,而是使用其他内容?请开导我。。!