【发布时间】:2018-05-27 08:24:43
【问题描述】:
编辑:我实际上想为textColor 属性设置动画。我认为这与backgroundColor 的解决方案相同,但显然不是因为textColor 在layer 中不可用。我找到了这个here的解决方案。
我正在尝试每隔一秒随机更改UILabel 的背景颜色。我使用的代码在常规视图上运行良好,但是当我在标签上调用它时迭代速度太快。就好像带有持续时间的动画不会在标签上花费任何时间。知道这是为什么吗?我实际上想更改标签文本颜色,这就是为什么它在标签上很重要。
colorChanges(v: lbl) // TOO FAST!
colorChanges(v: someView) // PERFECT
colorChanges(v: self.view) // PERFECT
动画代码
func colorChanges(v: UIView) {
UIView.animate(withDuration: 1.0, animations: {
v.backgroundColor = UIColor(displayP3Red: CGFloat(arc4random()) / CGFloat(UInt32.max), green: CGFloat(arc4random()) / CGFloat(UInt32.max), blue: CGFloat(arc4random()) / CGFloat(UInt32.max), alpha: 1.0)
}, completion: {
(value: Bool) in
self.colorChanges(v: v)
})
}
奇怪的行为
【问题讨论】:
-
由于某种原因,
UILabel动画立即完成,您可以在这个方向上追踪问题 -
您好,感谢您的回复!你们链接的其他帖子提供了更改背景颜色的解决方案。知道如何为 textColor 执行此操作吗?
标签: ios swift animation uilabel