Получение текста UILabel для изменения при проверке на недопустимые символы - PullRequest
0 голосов
/ 04 октября 2018

У меня возникают проблемы с изменением текста UILabel, когда в имени пользователя используется недопустимый символ.В настоящее время остальная часть кода работает нормально - включая анимацию и вибрацию.

Вот мой код:

func textFieldDidEndEditing(_ textField: UITextField) {

    let forbiddenUsernameCharacters = [".", " ", "#", "$", "[", "}", "]", "{", "(", "}"]

    guard let username = self.usernameTextField.text else { return }

    if textField == usernameTextField  && self.usernameTextField.text != "" {

        if !forbiddenUsernameCharacters.contains(where: username.contains) {
            print("Done")
            DispatchQueue.global(qos: .background).async {

                //Handle Global
                DispatchQueue.main.async {
                    self.checkForUserName(requestedUsername: self.usernameTextField.text!.lowercased())
                }
            }
        } else {
            self.errorLabel.text = "Invalid Characters"
            self.view.layoutIfNeeded()
            print("Invalid Characters")
            AudioServicesPlaySystemSound (1352)


            let animation = CABasicAnimation(keyPath: "position")
            animation.duration = 0.07
            animation.repeatCount = 4
            animation.autoreverses = true
            animation.fromValue = NSValue(cgPoint: CGPoint(x: self.usernameTextField.center.x - 10, y: self.usernameTextField.center.y))
            animation.toValue = NSValue(cgPoint: CGPoint(x: self.usernameTextField.center.x + 10, y: self.usernameTextField.center.y))

            self.usernameTextField.layer.add(animation, forKey: "position")
        }
    }
}
...