Ios 在Swift中设置UILabel文本颜色的动画
如何使用swift设置UILabel颜色更改的动画?我见过有人提到使用CALayer,但我无法理解它的快速语法 这是Objective-C的一个例子Ios 在Swift中设置UILabel文本颜色的动画,ios,iphone,swift,uilabel,calayer,Ios,Iphone,Swift,Uilabel,Calayer,如何使用swift设置UILabel颜色更改的动画?我见过有人提到使用CALayer,但我无法理解它的快速语法 这是Objective-C的一个例子 CALayer *layer = myView.layer; CATextLayer *textLayer = [CATextLayer layer]; [textLayer setString:@"My string"]; [textLayer setForegroundColor:initialColor; [textLayer setFram
CALayer *layer = myView.layer;
CATextLayer *textLayer = [CATextLayer layer];
[textLayer setString:@"My string"];
[textLayer setForegroundColor:initialColor;
[textLayer setFrame:self.bounds];
[[self.view layer] addSublayer:textLayer];
[UIView animateWithDuration:0.5 animations:^{
textLayer.foregroundColor = finalColor;
}];
这比与CALayer合作要容易得多
let myLabel: UILabel!
UIView.animateWithDuration(2, animations: { () -> Void in
myLabel.backgroundColor = UIColor.redColor();
})
就这样
编辑
好的,对不起,我不知道你要换什么颜色。。。我已将您的示例转换为swift代码
首先
import QuartzCore
不幸的是,
textColor
无法通过UIView.animate设置动画。但是,UIView.transition
起作用
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
UIView.transition(with: label, duration: 2, options: .transitionCrossDissolve) {
self.label.textColor = .green
}
}
结果:
我编辑了我的原始问题,加入了一个客观CDO的例子。这个问题能回答你的问题吗?文本颜色会更改,但不会设置动画。它会立即改变背景颜色≠ textColor,正如问题作者所指出的,这实际上不起作用谢谢,对不起,我不能投票支持你,因为我没有15个声誉起初,我的第一个答案起作用。。。我在Xcode中检查了它,所以首先检查它Noah,然后写这样的东西。。。第二次,他编辑了他的文章,在我第一次回答时,我不知道文字的颜色是指。。。现在,我也编辑了我的帖子,以满足他的期望。仅仅因为缺乏你们的知识,投票就被否决了。。。干得好,伙计
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
UIView.transition(with: label, duration: 2, options: .transitionCrossDissolve) {
self.label.textColor = .green
}
}