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

UIView渐进动画

颛孙星海
2023-03-14

标准的UIView动画与持续时间:块非常适合需要单个动画效果的动画,即调整大小和/或移动。

是否有一种方法可以使动画渐进,使动画开始缓慢,并随着其进展而提高速度?

我可以尝试嵌套的动画,将后续块放置在完成处理程序中,但是这样动画有点“粗糙”。我希望动画平滑。

我想到的一个想法是创建一个递归函数,如下所示:

- (void) animateToYOrigin:(CGFloat)yOrigin{

    if (myView.frame.origin.y < 1){

        [UIView animateWithDuration:0.1
                         animations:^{

                        CGRect rect = myView.frame;
                        rect.origin.y = yOrigin;
                        myView.frame = rect;

                       } completion:^(BOOL finished) {

                        [self animateToYOrigin:yOrigin /2];
          }];
    }
}

我正在寻找一个完善的解决方案。


共有1个答案

华甫
2023-03-14

你可以用

[UIView animateWithDuration:time
                      delay:delay
                    options:OPTION_HERE
                 animations:anims
                 completion:completion]

方法,并将UIViewAnimationOptions传递到此处显示选项_的位置。默认情况下,您可以使用基本的ease in/out选项。如果你需要更多的选择,你可以看看这个git回购。在MTTIMING函数中。h/c您可以找到多个可以通过的选项。

 类似资料:
  • 我有一段疯狂的代码。我如何用核心动画来制作动画,这样我的代码就少了很多?我已经找到了一些做“摆动”动画的代码,但那是3D的,我只想让视图左右移动,我不想让它在侧面反弹。

  • 我有一段代码,可以为UIImage的位置设置动画,但是过渡没有设置动画,而是位置会立即改变。我不认为这是一个代码问题,因为相同的代码在另一个项目上工作,但我无法找出其他错误。 alpha会动画,而y位置不会。我的约束如下所示 编辑:我正在使用针对8.4的Xcode-Beta 7

  • 问题内容: 我在WkWebview中有一个网页,并且该网页中有我想放置播放现场电影的UIView的矩形区域。我已经制作了webview和uiview,但是我不知道如何确定uiview在rect区域中的位置。也就是说,当用户滚动Web视图时,uiview滚动也会滚动。看来uiview是网页的一部分。如何将uiview固定到webview中的网页? 谢谢你的帮助。 问题答案: 最后,我通过使用java

  • 当我打开视图控制器时,我有一个从顶部飞出的视图。我已将UIView的Y约束设置为-200,当视图加载时,将调用以下内容,一切正常: 但是现在我有一个关闭按钮,它应该将动画回到-200位置,然后从屏幕上删除视图控制器。但是这个动画没有发生。视图控制器被直接删除。这是我正在做的: 我提到了这个链接。这似乎对他们有效,但对我无效。请帮忙。

  • 问题内容: 我试图弄清楚当用户将文本字段留空时如何使文本字段在按下按钮时摇动。 我目前有以下代码在工作: 但我认为,仅将文本字段摇动作为警报会更具吸引力。 我找不到任何可以使文本字段动起来的东西。 有任何想法吗? 谢谢! 问题答案: 您可以更改和并调整它。这就是我在代码中使用的。改变和将改变摇动中移动的距离。

  • 已有项目 期望接入 Mpx,可根据项目或人力情况选择如何迁移,Mpx 不要求用户一次性用上框架的所有东西。 项目初始期:可以考虑一次性转为 Mpx,此时迁移成本比较低 项目成熟期:若人力有限,可选择逐步将原生小程序转为Mpx,而且 不需要对原有代码做全局重写。可参考此demo:Mpx渐进接入demo。 可以保持原有代码不变,新的组件、页面期望使用 Mpx 某些特性时才引入 Mpx。(推荐新模块引