如何在Swift中设置UILabel的文本颜色

时间:2014-09-14 19:34:31

标签: iphone swift uilabel xcode6 textcolor

当我尝试使用代码将UILabel的颜色设置为另一个UILabel的颜色时

myLabel.textColor = otherLabel.textColor

它不会改变颜色。但是,当我使用此代码时,

myLabel.textColor = UIColor.redColor()

正确更改颜色。第一行的问题是什么?

9 个答案:

答案 0 :(得分:41)

最简单的解决方法是在IB中创建虚拟标签,为文本提供您喜欢的颜色并设置为隐藏。 然后,您可以在代码中引用此颜色,以将标签设置为所需的颜色。

yourLabel.textColor = hiddenLabel.textColor

我可以通过编程方式更改文字颜色的唯一方法是使用标准颜色UIColor.whiteUIColor.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中定义的颜色。结果标签图像:

Resultant Label Images

以上代码在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/