티스토리 뷰
음 우선 제목을 이렇게 지어도 되는지 모르겠지만 ,,
위의 동영상을 보시면 텍스트필드의 텍스트값이 변함에 따라 동시에 밑에 라인과 라벨이 생기는 걸 알 수 있습니다!
코드를 보면 (정규식도 사용을 해서 밑에 코드에 생략된 부분이 많습니다 ...)
private func actionEmailTextField() {
emailTextField.addTarget(self, action: #selector(SignUpFirstViewController.textFieldDidChange(_:)), for: UIControl.Event.allEditingEvents)
}
private func actionPasswordTextField() {
passwordTextField.addTarget(self, action: #selector(SignUpFirstViewController.textFieldDidChange(_:)), for: UIControl.Event.allEditingEvents)
}
private func actionCheckingPasswordTextField() {
checkingpasswordTextField.addTarget(self, action: #selector(SignUpFirstViewController.textFieldDidChange(_:)), for: UIControl.Event.allEditingEvents)
}
// MARK: @objc Function
@objc func textFieldDidChange(_ textField: UITextField) {
guard let password = passwordTextField.text else { return }
if password.count < 8 {
passwordErrorLabel.textColor = .Red
}
if textField == emailTextField {
self.isEmailError = checkEmail()
// 비밀번호
} else if textField == passwordTextField || textField == checkingpasswordTextField {
self.isPasswordError = checkPassword()
self.isPasswordCheckError = checkPasswordCheck()
}
// 모두 true -> 시작하기 버튼색 바꾸기
if isEmailError && isPasswordError && isPasswordCheckError {
self.confirmButton.backgroundColor = UIColor.DeepYellow
confirmButton.isEnabled = true
confirmButton.isHidden = false
} else {
confirmButton.isHidden = true
confirmButton.isEnabled = false
}
}
가장 크게 눈 여겨 봐야 할 부분은 아래 두가지 입니다.
emailTextField.addTarget(self, action: #selector(SignUpFirstViewController.textFieldDidChange(_:)), for: UIControl.Event.allEditingEvents)
@objc func textFieldDidChange(_ textField: UITextField) {
guard let password = passwordTextField.text else { return }
if password.count < 8 {
passwordErrorLabel.textColor = .Red
}
if textField == emailTextField {
self.isEmailError = checkEmail()
// 비밀번호
} else if textField == passwordTextField || textField == checkingpasswordTextField {
self.isPasswordError = checkPassword()
self.isPasswordCheckError = checkPasswordCheck()
}
// 모두 true -> 시작하기 버튼색 바꾸기
if isEmailError && isPasswordError && isPasswordCheckError {
self.confirmButton.backgroundColor = UIColor.DeepYellow
confirmButton.isEnabled = true
confirmButton.isHidden = false
} else {
confirmButton.isHidden = true
confirmButton.isEnabled = false
}
}
@objc 부분에는 동작할 부분을 적어주고 이제 함수에서 호출해서 사용하면 됩니다 ..!
근데 중요한 부분은
addTarget(self, action: #selector(SignUpFirstViewController.textFieldDidChange(_:)), for: UIControl.Event.allEditingEvents)
이 부분에서 for: 다음 부분에서 Event.allEditingEvents 를 작성해야지 원활하게 돌아갑니다 .>!
(모든 이벤트에 대해 수정을 하겠다 ! 라는 뜻입니다.)
틀린 부분이 있으면 말씀해주세요 !
'SOPT 28th APPJAM - iOS' 카테고리의 다른 글
[Swift] carouselView, CollectionView3D 전환 [1/2] (0) | 2021.09.22 |
---|---|
[Swift] 카카오 소셜 로그인 (0) | 2021.08.23 |
[Swift] 디바이스 노치 유무에 따른 분기처리 (0) | 2021.07.24 |
[Swift] Commit, Issue, Pull Request (0) | 2021.07.23 |
[Swift] Branch Rules (0) | 2021.07.23 |
댓글