UIView 动画动画的属性比我要求的要多

Posted

技术标签:

【中文标题】UIView 动画动画的属性比我要求的要多【英文标题】:UIView animation animating more properties than I've asked it to 【发布时间】:2012-03-27 20:01:19 【问题描述】:

我有一个简单的 UIView 动画块。在块中,我只更改了视图的 alpha,但视图的框架也被动画化了!什么鬼?

这是我的代码:

UIButton *button = [flowerViews objectAtIndex:index];
UIImageView *newGlowView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"grid_glow.png"]];
newGlowView.frame = CGRectMake(0, 0, 130, 130);
newGlowView.center = button.center;
newGlowView.alpha = 0.0;
[scrollView_ addSubview:newGlowView];
[scrollView_ sendSubviewToBack:newGlowView];
[UIView animateWithDuration:0.3 animations:^
    newGlowView.alpha = 1.0;
];

如您所见,我正在创建一个新视图并将其添加到 scrollView_。在将视图添加到 scrollView_ 之前,我正在设置视图的位置和 alpha。添加后,我有一个动画块可以将视图的 alpha 从 0 设置为 1。

问题是,视图的位置也是动画的!当它淡入时,它看起来好像是从 CGRectZero 的原始帧动画到我分配的帧。

从表面上看,只有在动画块中设置的属性才应该是动画的,对吧?这是一个错误吗?我错过了什么吗?

谢谢!

【问题讨论】:

是从动画块中调用整个事物,还是在动画块内的事件中调用,例如自动旋转视图控制器委托方法。 是的。您可以将其发布为答案以便我接受吗?我只是自己想通了(duh) 【参考方案1】:

也许整个事情是从动画块中调用的,或者可能在动画块内的事件中调用,例如自动旋转视图控制器委托方法。

【讨论】:

就是这样!包含我的问题中的代码的方法通常不会从动画块中调用,但在这种情况下它是。傻我。达到时间阈值后,我会尽快接受您的答复。

以上是关于UIView 动画动画的属性比我要求的要多的主要内容,如果未能解决你的问题,请参考以下文章

UIView 动画发生的速度比指定的秒数快

动画 CALayer

当UIVIew隐藏在sameView中时,如何为UIview设置动画

使用 UIViewPropertyAnimator 同步动画 CALayer 属性和 UIView

减慢动画中的 UIView 动画

iOS开发UI篇—核心动画(UIView封装动画)