UIView,动画背景颜色非常缓慢,挂起滚动视图(!)

Posted

技术标签:

【中文标题】UIView,动画背景颜色非常缓慢,挂起滚动视图(!)【英文标题】:UIView, very slowly animating background color, hangs scroll view (!) 【发布时间】:2014-04-16 20:07:43 【问题描述】:

这是一个,当某个屏幕到达时,

[UIView animateWithDuration:20 animations:^
         self.view.backgroundColor =
        [UIColor colorWithHue:0 saturation:0 brightness:0.97 alpha:1];
        ];

我想很慢,把它从白色变成柔和的白色。

奇怪的是 - 如果您将其添加到视图中,它会崩溃您碰巧在那里拥有的任何滚动视图(表视图、集合视图),我认为是在该视图上,或者实际上只是在屏幕上的任何位置。 (缓慢的淡入淡出效果很好!)

在任何全屏视图上试一试。

有人注意到了吗?想法?干杯

顺便说一句,整个屏幕慢慢变成灰白色是一个很棒的设计外观,尤其是在视网膜 iPad 上。 (虽然打破任何桌子都不是那么好:O)

【问题讨论】:

它真的“崩溃”或“挂起”还是仅仅是在这 20 秒内禁用了用户交互? 大卫 - 它变得“超级生涩和不规则”......你知道吗?奇怪的一个! 您可以尝试使用CAAnimationview.layer 的背景颜色设置动画 我试过这个,如果我添加 UIViewAnimationOptionAllowUserInteraction 选项,我的表格视图没有任何问题。没有它,表格视图不会响应触摸,按钮也不会。这是正常行为。 啊!也许 UIViewAnimationOptionAllowUserInteraction 是秘密——我根本不知道。这太棒了,也许您应该将其提升为答案,rd? 【参考方案1】:

这是 rdelmar 提示的示例!

[UIView animateWithDuration:1
    delay:0.0
    options:UIViewAnimationOptionAllowUserInteraction
    animations:^
     c.backgroundColor=[[UIColor whiteColor] colorWithAlphaComponent:0.5];
    completion:nil
    ];

【讨论】:

以上是关于UIView,动画背景颜色非常缓慢,挂起滚动视图(!)的主要内容,如果未能解决你的问题,请参考以下文章

如何中断 UIView 动画

在具有多个部分的 tableView 中滚动时使用平滑动画更改视图背景渐变颜色

覆盖 SwiftUI 视图的默认背景颜色?

为啥 ViewPager 向左滚动时颜色过渡动画错误?

动画 UIView 背景颜色 swift

UIView背景颜色动画用不同的颜色