更改标签文本时如何更改标签颜色
Posted
技术标签:
【中文标题】更改标签文本时如何更改标签颜色【英文标题】:How to change label color when you change label text 【发布时间】:2018-01-26 10:04:17 【问题描述】:我是新来的... 我有一个文本字段和一个标签...我想更改标签颜色,以防文本字段中的消息和标签文本不相等。 这是我的开始:
@IBAction func tapMeButton(_ sender: Any)
label.text = txtField.text
我该怎么做?
【问题讨论】:
UILabel
s 有一个textColor
字段,它接受一个UIColor
。您可以使用if
语句来确定消息是否相同(如果您不关心大小写,您可能希望将两个字符串都设置为小写)。
【参考方案1】:
将此行添加到 viewDidLoad
textField.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)
和
@objc func textFieldDidChange(_ textField: UITextField)
if(label.text != txtField.text)
label.textColor = UIColor.red
@IBAction func tapMeButton(_ sender: Any)
label.text = txtField.text
【讨论】:
感谢您的回答。但是我想在更改文本时更改颜色。一开始,当我按下按钮时,我的文本字段和我的标签是相同的。然后,当我想在文本字段中写入新文本时更改标签颜色时。【参考方案2】:UITextField 提供委托方法,您可以使用此代码检查两个 Value 是否相同。
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
let nsString = textField.text as NSString?
let newString = nsString?.replacingCharacters(in: range, with: string)
if(self.lbl.text != newString)
self.lbl.textColor = UIColor.red
else
self.lbl.textColor = UIColor.green
return true;
【讨论】:
【参考方案3】:首先添加获取文本变化的目标。
textField.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)
func textFieldDidChange(_ textField: UITextField)
if(label.text != textField.text)
label.textColor = UIColor.red
你也可以看到这个:https://***.com/a/28395000/5167909
【讨论】:
【参考方案4】:要做到这一点,你必须更多地了解文本字段,
每个文本字段都带有委托方法来围绕它执行各种功能。 所以首先在你的 viewDidLoad 方法中,像这样向它添加委托
yourTextField.delegate = self
通过添加扩展将 textFieldDelegate 分配给您的类来添加委托方法。它会在用户开始输入甚至被添加到 textField 之前实时为您提供文本
extension YourViewController:UITextFieldDelegate
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
if let text = textField.text as NSString?
let txtAfterUpdate = text.replacingCharacters(in: range, with: string)
if txtAfterUpdate == label.text
label.backgroundColor = UIColor.red
else
label.backgroundColor = UIColor.black
return true
【讨论】:
以上是关于更改标签文本时如何更改标签颜色的主要内容,如果未能解决你的问题,请参考以下文章
更改 DropdownList 值后更改 ASP 标签文本颜色?
Antd:如何更改 Antd Form.Item 标签文本颜色?