Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Swift中设置UILabel文本颜色的动画_Ios_Iphone_Swift_Uilabel_Calayer - Fatal编程技术网

Ios 在Swift中设置UILabel文本颜色的动画

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

如何使用swift设置UILabel颜色更改的动画?我见过有人提到使用CALayer,但我无法理解它的快速语法

这是Objective-C的一个例子

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
    }
}