Добавить изображение в UITextField в Xcode?
![enter image description here]()
Мне нужно реализовать концепцию dropdown
в Xcode.
Для этой цели я использую UIPickerview
.
Этот pickerView загружает, когда текстовое поле прослушивается (при событии textFieldDidBeginEditing:).
Вопрос:
Есть ли способ, чтобы добавить изображение в TextField
?
Изображение похоже на метку стрелки, по которой пользователь может понять, что появляется dropdown
при нажатии TextField
. Как я могу это сделать?
Ответы
Ответ 1
UITextField имеет свойство rightView
, если у вас есть это изображение -
, тогда вы можете легко установить объект ImageView вправо:
UITextField *myTextField = [[UITextField alloc] init];
myTextField.rightViewMode = UITextFieldViewModeAlways;
myTextField.rightView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"downArrow.png"]];
Ответ 2
В Swift:
textField.leftViewMode = UITextFieldViewMode.Always
textField.leftView = UIImageView(image: UIImage(named: "imageName"))
Ответ 3
Вы можете поместить UIImageView
влево от вашего UITextField
.
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(96, 40, 130, 20)];
[textField setLeftViewMode:UITextFieldViewModeAlways];
textField.leftView= [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"searchIccon.png"]];
Ответ 4
Swift 3.0
txtField.rightViewMode = .always
txtField.rightView = UIImageView(image: UIImage(named: "selectdrop"))
![TextField с иконкой DropDown]()
Ответ 5
Эй, вы хотите видеть выпадающий список, а затем посмотрите этот пользовательский раскрывающийся список.
и для этого требования используйте этот код
UITextField *txtstate =[[UITextField alloc]init]; [txtstate setFrame:CGRectMake(10, 30,170, 30)];
txtstate.delegate=self;
[email protected]"Fruits";
txtstate.borderStyle = UITextBorderStyleLine;
txtstate.background = [UIImage imageNamed:@"dropdownbtn.png"];
[txtstate setAutocorrectionType:UITextAutocorrectionTypeNo];
[self.view addSubview:txtstate];
и установите стиль рамки поля текста none..
Ответ 6
Чтобы добавить правильные поля /paddings между изображением и текстовым полем, попробуйте этот ниже код.
Расширение ответа @King-Wizard.
Здесь высота моего TextField равна 44
Проверьте прикрепленное изображение для справки.
Быстрая версия:
emailTF.leftViewMode = .Always
let emailImgContainer = UIView(frame: CGRectMake(emailTF.frame.origin.x, emailTF.frame.origin.y, 40.0, 30.0))
let emailImView = UIImageView(frame: CGRectMake(0, 0, 25.0, 25.0))
emailImView.image = UIImage(named: "image1")
emailImView.center = emailImgContainer.center
emailImgContainer.addSubview(emailImView)
emailTF.leftView = emailImgContainer
![введите описание изображения здесь]()
Ответ 7
UITextField обладает следующим свойством:
@property(nonatomic, retain) UIImage *background
Пример:
UITextField *myTextField = [[UITextField alloc] init];
myTextField.background = [UIImage imageNamed:@"myImage.png"];
Ответ 8
Шаг 1: Добавьте этот класс в свой проект и добавьте его в свой класс textFiled в инспекторе идентификации,
class MyCustomTextField: UITextField {
@IBInspectable var inset: CGFloat = 0
@IBInspectable var leftImage: String = String(){
didSet{
leftViewMode = UITextFieldViewMode.Always
leftView = UIImageView(image: UIImage(named: leftImage))
}
}
override func textRectForBounds(bounds: CGRect) -> CGRect {
return CGRectInset(bounds, inset, inset)
}
override func editingRectForBounds(bounds: CGRect) -> CGRect {
return textRectForBounds(bounds)
}
override func leftViewRectForBounds(bounds: CGRect) -> CGRect {
return CGRectInset(CGRectMake(0, 2, 40, 40), 10, 10) //Change frame according to your needs
}
}
Шаг 2: Установите текстовые вставки и левое изображение из конструктора интерфейса.
![введите описание изображения здесь]()
Шаг 3: Наслаждайтесь.