所以我想做一个视图逐渐淡出的UI动画。现在我有这样的东西
[UIView animateWithDuration:2.0f
animations:^{
myView.alpha = 0.0f;
}
];所以现在在这2秒的过程中,视图将线性地逐渐淡出。然而,我想让它的淡出是非线性的。例如,我希望它开始慢慢淡出,然后随着时间的推移更快地淡出。
我该怎么做呢?
发布于 2014-05-02 06:19:13
使用带有options参数的较长形式的animateWithDuration方法之一,如animateWithDuration:delay:options:animations:completion:。
您可以提供的选项之一是像UIViewAnimationOptionCurveEaseInOut这样的定时曲线。
您的选择是
UIViewAnimationOptionCurveEaseInOut = 0 << 16,
UIViewAnimationOptionCurveEaseIn = 1 << 16,
UIViewAnimationOptionCurveEaseOut = 2 << 16,
UIViewAnimationOptionCurveLinear = 3 << 16,如果使用CAAnimation而不是UIView动画,还可以使用描述所需计时功能的贝塞尔曲线的控制点创建自己的自定义计时功能。但是,CAAnimation使用起来更复杂,文档也更少。
发布于 2014-05-02 06:15:06
[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
myView.alpha = 0.0f;
} completion:nil];或者选择你最喜欢的时间曲线而不是UIViewAnimationOptionCurveEaseInOut
发布于 2016-01-27 19:14:08
您一定需要“缓入”定时曲线,在该曲线中,动画开始缓慢,结束时为线性。尝试下面的代码,
[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionCurveEaseIn animations:^{
myView.alpha = 0.0f;
} completion:nil];如果它解决了你的问题,请一定要让我知道。
https://stackoverflow.com/questions/23417511
复制相似问题