首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIAnimation非线性效应

UIAnimation非线性效应
EN

Stack Overflow用户
提问于 2014-05-02 06:11:32
回答 3查看 405关注 0票数 0

所以我想做一个视图逐渐淡出的UI动画。现在我有这样的东西

代码语言:javascript
复制
[UIView animateWithDuration:2.0f
    animations:^{
        myView.alpha = 0.0f;
    }
 ];

所以现在在这2秒的过程中,视图将线性地逐渐淡出。然而,我想让它的淡出是非线性的。例如,我希望它开始慢慢淡出,然后随着时间的推移更快地淡出。

我该怎么做呢?

EN

回答 3

Stack Overflow用户

发布于 2014-05-02 06:19:13

使用带有options参数的较长形式的animateWithDuration方法之一,如animateWithDuration:delay:options:animations:completion:

您可以提供的选项之一是像UIViewAnimationOptionCurveEaseInOut这样的定时曲线。

您的选择是

代码语言:javascript
复制
 UIViewAnimationOptionCurveEaseInOut            = 0 << 16,
 UIViewAnimationOptionCurveEaseIn               = 1 << 16,
 UIViewAnimationOptionCurveEaseOut              = 2 << 16,
 UIViewAnimationOptionCurveLinear               = 3 << 16,

如果使用CAAnimation而不是UIView动画,还可以使用描述所需计时功能的贝塞尔曲线的控制点创建自己的自定义计时功能。但是,CAAnimation使用起来更复杂,文档也更少。

票数 2
EN

Stack Overflow用户

发布于 2014-05-02 06:15:06

代码语言:javascript
复制
[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
    myView.alpha = 0.0f;
} completion:nil];

或者选择你最喜欢的时间曲线而不是UIViewAnimationOptionCurveEaseInOut

票数 0
EN

Stack Overflow用户

发布于 2016-01-27 19:14:08

您一定需要“缓入”定时曲线,在该曲线中,动画开始缓慢,结束时为线性。尝试下面的代码,

代码语言:javascript
复制
[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionCurveEaseIn animations:^{
    myView.alpha = 0.0f;
} completion:nil];

如果它解决了你的问题,请一定要让我知道。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23417511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档