我正在使用CABasicAnimation
来移动和调整图像视图的大小。我希望图像视图被添加到superview,动画,然后从superview中删除。
为了实现这一点,我正在监听CAAnimationGroup
的委托调用,一旦它被调用,我就从superview中删除图像视图。
问题是,有时图像在从superview中删除之前会在初始位置闪烁。避免这种行为的最好方法是什么?
CAAnimationGroup *animGroup = [CAAnimationGroup animation];
animGroup.animations = [NSArray arrayWithObjects:moveAnim, scaleAnim, opacityAnim, nil];
animGroup.duration = .5;
animGroup.delegate = self;
[imageView.layer addAnimation:animGroup forKey:nil];
发布于 2012-07-17 11:45:39
完成后,CAAnimations会自动删除。有一个属性removedOnCompletion
可以控制这一点。您应该将其设置为NO
。
此外,还有一种称为fillMode
的东西,它控制动画在其持续时间之前和之后的行为。这是在CAMediaTiming
( CAAnimation
遵守的)上声明的属性。您应该将其设置为kCAFillModeForwards
。
有了这两个更改,动画应该在完成后仍然有效。但是,我不知道您是否需要在组中更改这些设置,或者在组中的单个动画上更改这些设置,或者两者都更改。
https://stackoverflow.com/questions/11515647
复制相似问题