Добавить изображение в UITextField в Xcode?
мне нужно реализовать концепцию dropdown
в Xcode.
для этой цели я использую UIPickerview
.
этот pickerView загружается при нажатии на текстовое поле (на textFieldDidBeginEditing:)событие.
вопрос:
есть ли способ, что я могу добавить изображения к TextField
?
изображение похоже на стрелку, по которой пользователь может понять, что a dropdown
появляется, когда textfield
постучал .Как я могу сделать это?
9 ответов:
UITextField имеет
rightView
свойство, если у вас есть изображение, как это - затем вы можете легко установить объект ImageView в rightView:UITextField *myTextField = [[UITextField alloc] init]; myTextField.rightViewMode = UITextFieldViewModeAlways; myTextField.rightView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"downArrow.png"]];
В Swift:
textField.leftViewMode = UITextFieldViewMode.Always textField.leftView = UIImageView(image: UIImage(named: "imageName"))
вы можете поставить
UIImageView
на углуUITextField
.UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(96, 40, 130, 20)]; [textField setLeftViewMode:UITextFieldViewModeAlways]; textField.leftView= [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"searchIccon.png"]];
чтобы добавить правильные поля / отступы между изображением и текстовым полем, попробуйте сделать это ниже кода. Расширение ответа @King-Wizard.
здесь высота моего текстового поля составляет 44 Проверьте прикрепленное изображение для справки.
Swift Версия:
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
Эй, приятель, вы хотите раскрывающийся список, а затем увидеть этот пользовательский раскрывающийся список ..
- http://code.google.com/p/dropdowndemo/downloads/list
- http://ameyashetti.wordpress.com/2010/09/26/drop-down-demo/
и для этого требования используйте этот код
UITextField *txtstate =[[UITextField alloc]init]; [txtstate setFrame:CGRectMake(10, 30,170, 30)]; txtstate.delegate=self; txtstate.text=@"Fruits"; txtstate.borderStyle = UITextBorderStyleLine; txtstate.background = [UIImage imageNamed:@"dropdownbtn.png"]; [txtstate setAutocorrectionType:UITextAutocorrectionTypeNo]; [self.view addSubview:txtstate];
и установите свой стиль границы текстового поля нет..
UITextField имеет следующее свойство:
@property(nonatomic, retain) UIImage *background
пример:
UITextField *myTextField = [[UITextField alloc] init]; myTextField.background = [UIImage imageNamed:@"myImage.png"];
Шаг 1: добавьте этот класс в свой проект и добавьте его в класс textFiled в Identity inspector,
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: установите текстовые вставки и левое изображение из interface builder.
Шаг 3: наслаждайтесь.
emailTextField.leftViewMode = .alway let emailImgContainer = UIView(frame: CGRect(x: 0, y: 0, width: 30, height: 25)) let emailImg = UIImageView(frame: CGRect(x: 0, y: 0, width: 25, height: 25)) emailImg.image = UIImage(named: "SomeIMG") emailImgContainer.addSubview(emailImg) emailTextField.leftView = emailImgContainer