当我尝试使用代码将UILabel的颜色设置为另一个UILabel的颜色时
myLabel.textColor = otherLabel.textColor
它不会改变颜色。但是,当我使用此代码时,
myLabel.textColor = UIColor.redColor()
它可以正确更改颜色。第一行有什么问题?
当我尝试使用代码将UILabel的颜色设置为另一个UILabel的颜色时
myLabel.textColor = otherLabel.textColor
它不会改变颜色。但是,当我使用此代码时,
myLabel.textColor = UIColor.redColor()
它可以正确更改颜色。第一行有什么问题?
Answers:
下面的代码示例显示了基本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)
lbl.textColor = UIColor(red: 10/256, green: 20/256, blue: 30/256, 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之前先尝试一下,以查看颜色是否符合您的期望。
我认为大多数人都希望其占位符文本为灰色且仅出现一次,所以我就是这样做的:
设置颜色viewDidLoad()
(不在IB中)
commentsTextView.textColor = UIColor.darkGray
实施UITextViewDelegate
到您的控制器
向您的控制器添加功能
func textViewDidBeginEditing(_ textView: UITextView) {
if (commentsTextView.textColor == UIColor.darkGray) {
commentsTextView.text = ""
commentsTextView.textColor = UIColor.black
}
}
这个解决方案很简单。
晚上很难看到文本字段占位符和“是”标签。因此,我会根据一天中的某个时间更改它们的颜色。
还要确保您连接了新的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
}
}
要在运行时更改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中对我来说效果很好。
您可以如下使用,也可以使用各种颜色进行分配
myLabel.textColor = UIColor.yourChoiceOfColor
例如:
迅速
myLabel.textColor = UIColor.red
物镜
[myLabel setTextColor:[UIColor redColor]];
或者您可以单击此处选择颜色,
https://www.ralfebert.de/ios-examples/uikit/swift-uicolor-picker/