如何在Swift中设置UILabel的textColor
当我尝试使用代码将UILabel的颜色设置为另一个UILabel的颜色时
myLabel.textColor = otherLabel.textColor
它不会改变颜色。 但是,当我使用这个代码时,
myLabel.textColor = UIColor.redColor()
它正确地改变颜色。 第一行有什么问题?
最简单的解决方法是在IB中创build虚拟标签,给他们文本你喜欢的颜色,并设置为隐藏。 然后,您可以在您的代码中引用此颜色以将您的标签设置为所需的颜色。
yourLabel.textColor = hiddenLabel.textColor
我可以通过编程来改变文本颜色的唯一方法是使用标准颜色UIColor.white
, UIColor.green
…
下面的代码示例显示了一个基本的UILabel
configuration。
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
我想大多数人都希望他们的占位符文本是灰色的,只出现一次,所以这就是我所做的:
-
在
viewDidLoad()
设置你的颜色(不在IB中)commentsTextView.textColor = UIColor.darkGray
-
实现
UITextViewDelegate
到你的控制器 -
添加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 } }