动画 UIView alpha 时闪烁

Posted

技术标签:

【中文标题】动画 UIView alpha 时闪烁【英文标题】:Flicker while animating UIView alpha 【发布时间】:2012-03-18 11:59:01 【问题描述】:

我有两个要切换的视图,问题是当我从 view1 切换到 view2 时,view2 的背景颜色首先出现,然后它的所有子视图出现,这会导致不必要的闪烁。

问题出在这里:-

[UIView beginAnimations:@"blabla" context:nil];
[UIView setAnimationDuration:5];
view1.alpha = 1;
[UIView commitAnimations];

先显示view1背景色,大约0.3秒后显示其子视图,我该怎么办?

【问题讨论】:

【参考方案1】:

尝试在动画块之前添加以下代码:

[view1 setNeedsLayout];
[view1 layoutIfNeeded];
// Now all the subviews of view1 are in place
[UIView beginAnimations:@"blabla" context:nil];
[UIView setAnimationDuration:5];
view1.alpha = 1;
[UIView commitAnimations];

【讨论】:

以上是关于动画 UIView alpha 时闪烁的主要内容,如果未能解决你的问题,请参考以下文章

闪烁动画问题

UIView subView alpha 动画不起作用

UIView 动画只工作一次

使用 UIViewPropertyAnimator 依次为 UIView 的 alpha 设置动画

CATransiton 闪烁带背景动画

难以链接两个 UIView 动画