更改标签文本时如何更改标签颜色

时间:2018-01-26 10:04:18

标签: ios swift xcode

我是新手...... 我有一个文本字段和一个标签...如果文本字段和标签文本中的消息不相等,我想更改标签颜色。 这是我的开始:

@IBAction func tapMeButton(_ sender: Any) {

    label.text = txtField.text

    }

我该怎么做?

4 个答案:

答案 0 :(得分:2)

将此行添加到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
}

答案 1 :(得分:1)

UITextField提供委托方法,您可以使用此代码检查两者的值是否相同。

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

答案 2 :(得分:0)

首先添加用于获取文本更改的目标。

textField.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)

func textFieldDidChange(_ textField: UITextField) {
    if(label.text != textField.text)
 {
   label.textColor = UIColor.red
 }
}

您还可以看到:https://stackoverflow.com/a/28395000/5167909

答案 3 :(得分:0)

要做到这一点,你必须更多地了解文本域,

  1. 每个文本字段都带有委托方法,可以围绕它执行各种功能。 首先在viewDidLoad方法中,像这样添加委托

    yourTextField.delegate = self
    
  2. 通过添加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
    
        }
    
    
    
    }