当我尝试使用代码将UILabel的颜色设置为另一个UILabel的颜色时
myLabel.textColor = otherLabel.textColor
它不会改变颜色。但是,当我使用此代码时,
myLabel.textColor = UIColor.redColor()
正确更改颜色。第一行的问题是什么?
答案 0 :(得分:41)
最简单的解决方法是在IB中创建虚拟标签,为文本提供您喜欢的颜色并设置为隐藏。 然后,您可以在代码中引用此颜色,以将标签设置为所需的颜色。
yourLabel.textColor = hiddenLabel.textColor
我可以通过编程方式更改文字颜色的唯一方法是使用标准颜色UIColor.white
,UIColor.green
......
答案 1 :(得分:37)
下面的代码示例显示了基本的UILabel
配置。
let lbl = UILabel(frame: CGRectMake(0, 0, 300, 200))
lbl.text = "yourString"
// Enum type, two variations:
lbl.textAlignment = NSTextAlignment.Right
lbl.textAlignment = .Right
lbl.textColor = UIColor.red
lbl.shadowColor = UIColor.black
lbl.font = UIFont(name: "HelveticaNeue", size: CGFloat(22))
self.view.addSubview(lbl)
答案 2 :(得分:23)
我不知道为什么要改变标签的文字颜色,你需要用255分割你想要的值,因为它只能工作到1.0。
例如深蓝色:
label.textColor = UIColor(red: 0.0, green: 0.004, blue: 0.502, alpha: 1.0)
答案 3 :(得分:6)
在IB和以下内容中制作了带有两个标签的应用程序:
@IBOutlet var label1: UILabel!
@IBOutlet var label2: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
label1.textColor = UIColor.redColor() // in Swift 3 it's UIColor.red
label2.textColor = label1.textColor
}
label2颜色按预期更改,因此您的线路正常工作。在设置myLabel.textColor之前尝试println(otherLabel.textColor)
,看看颜色是否符合预期。
答案 4 :(得分:4)
swift 3的解决方案 -
let titleLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 40, height: 40))
titleLabel.text = "change to red color"
titleLabel.textAlignment = .center
titleLabel.textColor = UIColor.red
答案 5 :(得分:3)
如果您使用的是Xcode 8和swift 3。 使用以下方法获取UIColor
label1.textColor = UIColor.red
label2.textColor = UIColor.black
答案 6 :(得分:0)
文本字段占位符和“真的”标签很难在晚上看到。所以我根据一天的什么时间改变颜色。
还要确保连接新的IBOutlet isReallyLabel。为此,打开Main.storybaord并从“转换”视图控制器控制拖动到“真的”文本字段并选择奥特莱斯下的isReallyLabel。
警告:我没有在一天中的时间交换时检查应用程序是否打开。
@IBOutlet var isReallyLabel: UILabel!
override func viewWillAppear(animated: Bool) {
let calendar = NSCalendar.currentCalendar()
let hour = calendar.component(.Hour, fromDate: NSDate())
let lightColor = UIColor.init(red: 0.961, green: 0.957, blue: 0945, alpha: 1)
let darkColor = UIColor.init(red: 0.184, green: 0.184 , blue: 0.188, alpha: 1)
switch hour {
case 8...18:
isReallyLabel.textColor = UIColor.blackColor()
view.backgroundColor = lightColor
default:
let string = NSAttributedString(string: "Value", attributes: [NSForegroundColorAttributeName: UIColor.whiteColor()])
textField.attributedPlaceholder = string
isReallyLabel.textColor = UIColor.whiteColor()
view.backgroundColor = darkColor
}
}
答案 7 :(得分:0)
要在运行时更改UILable的文本颜色,请使用NSAttributedText且不要设置UILable.textColor。
let font = UIFont(name: "SFProText-Semibold", size: 16)!
if let messageToDisplay = currentUser?.lastMessage {
let attributedString = NSAttributedString(string: messageToDisplay, attributes: [NSAttributedString.Key.font: font, NSAttributedString.Key.foregroundColor: UIColor(named: "charcoal")!])
lastMessageLabel.attributedText = attributedString
} else {
let attributedString = NSAttributedString(string: "Start a conversation", attributes: [NSAttributedString.Key.font: font, NSAttributedString.Key.foregroundColor: UIColor(named: "ocean")!])
lastMessageLabel.attributedText = attributedString
}
注意 木炭和海洋是Assets.xcassets中定义的颜色。结果标签图像:
以上代码在Xcode 10.2.1和Swift 5中对我来说效果很好。
答案 8 :(得分:0)
您可以如下使用,也可以使用各种颜色进行分配
myLabel.textColor = UIColor.yourChoiceOfColor
例如:
快速
myLabel.textColor = UIColor.red
Objective-C
[myLabel setTextColor:[UIColor redColor]];
或者您可以click here选择颜色,
https://www.ralfebert.de/ios-examples/uikit/swift-uicolor-picker/