小编Mik*_*e M的帖子

UIViewAnimationOptionBeginFromCurrentState具有基本动画的意外行为

我正在尝试UIView在收到按钮点击时执行此基本动画:

- (IBAction)buttonPress:(id)sender
{
    self.sampleView.alpha = 0.0;
    [UIView animateWithDuration:2.0
                          delay:0.0
                        options:UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionBeginFromCurrentState
                     animations:^{self.sampleView.alpha = 1.0;}
                     completion:NULL];
}
Run Code Online (Sandbox Code Playgroud)

在按钮之前单击视图是可见的,并且alpha值为1.0.当我发送按钮动作时,我希望视图在2秒内从alpha = 0.0淡入alpha = 1.0,但这不会发生.当我删除UIViewAnimationOptionBeginFromCurrentState动画工作正常.

看起来像UIViewAnimationOptionBeginFromCurrentState选项设置,没有设置alpha = 0.0并且跳过动画,因为它认为它已经是1.0.

我试图理解为什么会发生这种情况,因为Apple文档声明UIViewAnimationOptionBeginFromCurrentState如果另一个动画没有进行则没有效果:

" UIViewAnimationOptionBeginFromCurrentState 从与已在飞行中的动画相关联的当前设置开始动画.如果此键不存在,则允许在新动画开始之前完成任何飞行动画.如果另一个动画未在飞行中,则此键没有效果."

cocoa-touch objective-c uiviewanimation ios

6
推荐指数
1
解决办法
3378
查看次数

标签 统计

cocoa-touch ×1

ios ×1

objective-c ×1

uiviewanimation ×1