#swift #uitextfield
#swift #uitextfield
Вопрос:
у меня есть три текстовых поля. один предназначен для отображения средства выбора даты, второй — для отображения параметров для пола, а другой — для отображения кода страны. допустим, сейчас отображается выпадающее поле «Пол», если я нажму на текстовое поле dateofbirth или contrycode, тогда пол будет скрыт. например, если отображается дата рождения, и я нажимаю текстовое поле «Пол» или «Код страны», тогда текстовое поле «Дата рождения» будет скрыто. то же самое будет работать для countrycode.
код для отображения текстового поля пола:-
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool{
if textField == gender_TextField{
tableViewOne.snp.updateConstraints { (make) in
make.top.equalTo(textField.frame.maxY)
make.left.equalTo(textField.frame.origin.x)
make.right.equalTo(0-(self.containerView.frame.maxX-textField.frame.maxX))
make.height.equalTo(0)
}
self.containerView.layoutIfNeeded()
UIView .animate(withDuration: 0.4, animations: {
self.tableViewOne.snp.updateConstraints({ (make) -> Void in
make.height.equalTo(130)
})
self.containerView.layoutIfNeeded()
}, completion: nil)
if(textField == gender_TextField){
self.selectedTextfeild = 1
self.selectedTextFieldType = DROPDOWN_TEXTFIELD.gender
}
tableViewOne.tableFooterView = UIView()
tableViewOne.reloadData()
tableViewOne.isHidden = !isTableViewHiden
isTableViewHiden = !isTableViewHiden
return false
}
return true
}
код для отображения средства выбора даты
datePickerView.addTarget(self, action: #selector(dateChanged(datePicker:)), for: .valueChanged)
datePickerView.datePickerMode = .date
dob_TextField.inputView = datePickerView
datePickerView.maximumDate = Date()
код для отображения кода страны
countryPickerView.delegate = self
if countryPickerView.selectedCountry.phoneCode != " 93"{
countryCode_Lable.text = countryPickerView.selectedCountry.phoneCode
}
else{
countryCode_Lable.text = " 1"
}
Ответ №1:
Вы можете скрыть два других представления и отказаться от двух других текстовых полей, когда одно из них активно.