如何在Swift中设置UILabel的textColor

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

myLabel.textColor = otherLabel.textColor 

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

 myLabel.textColor = UIColor.redColor() 

它正确地改变颜色。 第一行有什么问题?

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

 yourLabel.textColor = hiddenLabel.textColor 

我可以通过编程来改变文本颜色的唯一方法是使用标准颜色UIColor.whiteUIColor.green

下面的代码示例显示了一个基本的UILabelconfiguration。

 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) 

我不知道为什么,只是改变标签的文本颜色,你需要用255来分割你想要的值,因为它只能工作到1.0。

例如深蓝色:

 label.textColor = UIColor(red: 0.0, green: 0.004, blue: 0.502, alpha: 1.0) 

在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颜色按预期更改,所以您的线条工作。 尝试println(otherLabel.textColor)之前设置myLabel.textColor查看颜色是否您期望。

如果您使用的是Xcode 8和Swift 3.请使用以下方法获取UIColor

 label1.textColor = UIColor.red label2.textColor = UIColor.black 

我想大多数人都希望他们的占位符文本是灰色的,只出现一次,所以这就是我所做的:

  1. viewDidLoad()设置你的颜色(不在IB中)

     commentsTextView.textColor = UIColor.darkGray 
  2. 实现UITextViewDelegate到你的控制器

  3. 添加function到你的控制器

     func textViewDidBeginEditing(_ textView: UITextView) { if (commentsTextView.textColor == UIColor.darkGray) { commentsTextView.text = "" commentsTextView.textColor = UIColor.black } } 

这个解决scheme很简单。

快速解决scheme3 –

 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 

文本字段占位符和“真的”标签在晚上很难看到。 所以我改变他们的颜色取决于一天中的什么时间。

还要确保连接新的IBOutlet isReallyLabel。 为此,打开Main.storybaord并从“Convert”视图控制器拖动到“is really”文本字段,然后在Outlets下selectisReallyLabel。

警告:我还没有testing,看是否应用程序是开放的时间掉期。

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