When I try setting the color of a UILabel to the color of another UILabel using the code
myLabel.textColor = otherLabel.textColor
It doesn't change the color. When I use this code, however,
myLabel.textColor = UIColor.redColor()
It changes the color correctly. What's the issue with the first line?
If you are using Xcode 8 and swift 3. Use the following way to get the UIColor
label1.textColor = UIColor.red
label2.textColor = UIColor.black
Made an app with two labels in IB and the following:
@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 color changed as expected, so your line works. Try println(otherLabel.textColor)
right before you set myLabel.textColor to see if the color's what you expect.
solution for 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
The text field placeholder and the "is really" label is hard to see at night. So i change their color depending one what time of day it is.
Also make sure you connect the new IBOutlet isReallyLabel. To do so open Main.storybaord and control-drag from "Convert" view controller to the "is really" text field and select the isReallyLabel under Outlets.
WARNING: I have not tested to see if the application is open while the time of day swaps.
@IBOutlet var isReallyLabel: UILabel! _x000D_
_x000D_
override func viewWillAppear(animated: Bool) {_x000D_
let calendar = NSCalendar.currentCalendar()_x000D_
let hour = calendar.component(.Hour, fromDate: NSDate())_x000D_
_x000D_
let lightColor = UIColor.init(red: 0.961, green: 0.957, blue: 0945, alpha: 1)_x000D_
let darkColor = UIColor.init(red: 0.184, green: 0.184 , blue: 0.188, alpha: 1)_x000D_
_x000D_
_x000D_
switch hour {_x000D_
case 8...18:_x000D_
isReallyLabel.textColor = UIColor.blackColor()_x000D_
view.backgroundColor = lightColor_x000D_
default:_x000D_
let string = NSAttributedString(string: "Value", attributes: [NSForegroundColorAttributeName: UIColor.whiteColor()])_x000D_
textField.attributedPlaceholder = string_x000D_
isReallyLabel.textColor = UIColor.whiteColor()_x000D_
view.backgroundColor = darkColor_x000D_
}_x000D_
}
_x000D_
This code example that follows shows a basic 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)
To change the text colour of UILable at runtime use NSAttributedText and do not set 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
}
Note charcoal and ocean are colours defined in Assets.xcassets. Resultant Label Images:
Above code worked well for me in Xcode 10.2.1 and Swift 5.
You can use as below and also can use various color just assign
myLabel.textColor = UIColor.yourChoiceOfColor
Ex:
Swift
myLabel.textColor = UIColor.red
Objective-C
[myLabel setTextColor:[UIColor redColor]];
or you can click here to Choose the color,
https://www.ralfebert.de/ios-examples/uikit/swift-uicolor-picker/
I think most people want their placeholder text to be in grey and appear only once, so this is what I did:
Set your color in viewDidLoad()
(not in IB)
commentsTextView.textColor = UIColor.darkGray
Implement UITextViewDelegate
to your controller
add function to your controller
func textViewDidBeginEditing(_ textView: UITextView) {
if (commentsTextView.textColor == UIColor.darkGray) {
commentsTextView.text = ""
commentsTextView.textColor = UIColor.black
}
}
This solution is simple.
I don't know why but to change the text color of the labels you need to divide the value you want with 255, because it works only until 1.0.
For example a dark blue color:
label.textColor = UIColor(red: 0.0, green: 0.004, blue: 0.502, alpha: 1.0)
Source: Stackoverflow.com