Ajouter une image à UITextField dans Xcode?

entrer la description de l'image ici

Je dois implémenter le concept de dropdown dans Xcode.

Pour cela, j’utilise un UIPickerview .

Ce pickerView se charge lorsqu’un événement de champ de texte est tapé (sur textFieldDidBeginEditing:).

Question:

Est-il possible d’append une image à TextField ?

L’image est comme une flèche par laquelle l’utilisateur peut comprendre qu’une dropdown apparaît lorsque le champ de texte est tapé. Comment puis-je le faire?

UITextField a une propriété rightView , si vous avez une image comme ceci- entrer la description de l'image ici alors vous pouvez facilement définir l’object ImageView sur rightView:

 UITextField *myTextField = [[UITextField alloc] init]; myTextField.rightViewMode = UITextFieldViewModeAlways; myTextField.rightView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"downArrow.png"]]; 

En Swift:

 textField.leftViewMode = UITextFieldViewMode.Always textField.leftView = UIImageView(image: UIImage(named: "imageName")) 

Vous pouvez mettre le UIImageView à gauche de votre UITextField .

 UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(96, 40, 130, 20)]; [textField setLeftViewMode:UITextFieldViewModeAlways]; textField.leftView= [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"searchIccon.png"]]; 

Swift 3.0

 txtField.rightViewMode = .always txtField.rightView = UIImageView(image: UIImage(named: "selectdrop")) 

TextField Avec l'icône DropDown

Pour append des marges / paddings appropriés entre l’image et le champ de texte, essayez ce code ci-dessous. Expansion sur la réponse de @ King-Wizard.

Ici, la hauteur de mon TextField est de 44 Vérifiez l’image jointe pour référence.

Version rapide:

 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 

entrer la description de l'image ici

hey mate vous voulez vue déroulante puis voir cette vue déroulante personnalisée ..

  1. http://code.google.com/p/dropdowndemo/downloads/list
  2. http://ameyashetti.wordpress.com/2010/09/26/drop-down-demo/

et pour cette exigence utilisez ce code

 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]; 

et définissez votre style de bordure de champ de texte aucun ..

UITextField a la propriété suivante:

 @property(nonatomic, retain) UIImage *background 

Exemple:

 UITextField *myTextField = [[UITextField alloc] init]; myTextField.background = [UIImage imageNamed:@"myImage.png"]; 

Étape 1: Ajoutez cette classe à votre projet et ajoutez-la à la classe de votre textFiled dans l’inspecteur d’identité,

 class MyCustomTextField: UITextField { @IBInspectable var inset: CGFloat = 0 @IBInspectable var leftImage: Ssortingng = Ssortingng(){ 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 } } 

Étape 2: Définissez les encarts de texte et l’image de gauche à partir du générateur d’interface.

entrer la description de l'image ici

Étape 3: Profitez-en.