web-dev-qa-db-fra.com

Ajouter une image à UITextField dans Xcode?

enter image description here

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

Pour cela, j'utilise une UIPickerview.

Ce pickerView est chargé lorsqu'un événement dans un champ de texte est exploité (sur un événement textFieldDidBeginEditing:).

Question:

Y a-t-il un moyen, que je puisse ajouter une image à TextField

L'image est comme une flèche indiquant à l'utilisateur qu'il est possible d'afficher une dropdown lorsque textfield est tapé. Comment puis-je le créer? 

65
Honey

UITextField a une propriété rightView, si vous avez une image comme celle-ci- enter image description here alors vous pouvez facilement définir l'objet ImageView sur rightView:

UITextField *myTextField = [[UITextField alloc] init];

myTextField.rightViewMode = UITextFieldViewModeAlways;
myTextField.rightView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"downArrow.png"]];
148
Mayur Birari

À Swift:

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

Vous pouvez mettre la UIImageView à la 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"]];
30
Erhan Demirci

Swift 3.0

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

 TextField With DropDown Icon

10
Sourabh Sharma

Pour ajouter les marges et les marges appropriées entre l'image et le champ de texte, essayez ceci sous le code . Développer 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

 enter image description here

5
kishorer747

hey mate vous voulez une 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 none ..

3
Paras Joshi

É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: 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
    }
}

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

 enter image description here

Étape 3: Profitez-en.

2
Zaid Pathan

UITextField a la propriété suivante:

@property(nonatomic, retain) UIImage *background

exemple:

UITextField *myTextField = [[UITextField alloc] init];
myTextField.background = [UIImage imageNamed:@"myImage.png"];
2
Andrey Chernukha
      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

entrez la description de l'image ici

0
Td Prashanth