я сделал так чтобы поднимался scrollView когда клавиатура выходит как на видео Ивана
Но мне надо чтобы scrollView поднималась только на определенных TextFields а не на всех, как сделать?
я сделал так чтобы поднимался scrollView когда клавиатура выходит как на видео Ивана
Но мне надо чтобы scrollView поднималась только на определенных TextFields а не на всех, как сделать?
Используйте методы textFieldDelegate, там можно настроить действия на каждый конкретный textField
не так давно был похожий вопрос
В делегате есть например вот такой метод
func textFieldDidBeginEditing(UITextField){}
в нем вы можете сделать проверку:
if textField == myTextField{
// и тут сделать действие которые начинается при активации myTextField
}
ну и остальные методы по анологии
Спасибо большое получилось
func textFieldDidBeginEditing(_ textField: UITextField) {
print("TextField Work")
switch textField {
case emailTextField, addressTextField:
print("In 1")
showKB(textField)
case dayTextField, yearTextField:
print("In 2")
showKB(textField)
default:
break
}
}
func showKB(_ textField: UITextField) {
if textField == emailTextField || textField == addressTextField {
print("In 3")
scrollView.contentOffset = CGPoint(x: 0, y: 100)
secondView.frame.offsetBy(dx: 0, dy: 100)
} else if textField == dayTextField || textField == yearTextField {
print("In 4")
scrollView.contentOffset = CGPoint(x: 0, y: 250)
secondView.frame.offsetBy(dx: 0, dy: 250)
}
}
и не забудьте реализовать методы которые отвечают за окончание редактирования и за нажатия на кнопку return
Да сделал, и с анимацией
func hideKB() {
scrollView.contentOffset = .zero
secondView.frame = .zero
}
func textFieldDidEndEditing(_ textField: UITextField) {
UIView.animate(withDuration: 0.7, delay: 0.0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseOut, animations: {
self.hideKB()
}, completion: nil)
}