Solo quiero agregar algo más aquí:
Si desea agregar la imagen en UITextField
el lado izquierdo, use la leftView
propiedad deUITextField
NOTA: No olvide establecer leftViewMode
en UITextFieldViewMode.Always
y para el derecho rightViewMode
al UITextFieldViewMode.Always and
valor predeterminadoUITextFieldViewModeNever
por ejemplo
Para agregar una imagen en el lado izquierdo
textField.leftViewMode = UITextFieldViewMode.Always
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
let image = UIImage(named: imageName)
imageView.image = image
textField.leftView = imageView
Para agregar una imagen en el lado derecho
textField.rightViewMode = UITextFieldViewMode.Always
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
let image = UIImage(named: imageName)
imageView.image = image
textField.rightView = imageView
NOTA: algunas cosas que debe tener en cuenta al agregar una imagen UITextField
en el lado izquierdo o derecho.
No olvides dar un marco del ImageView
que vas a agregarUITextField
let imageView = UIImageView (marco: CGRect (x: 0, y: 0, ancho: 20, alto: 20))
si el fondo de la imagen es blanco, la imagen no se verá en UITextField
si desea agregar una imagen a la posición específica, debe agregarla ImageView
como subvista de UITextField
.
Actualización para Swift 3.0
@Mark Moeykens lo gastó maravillosamente y lo hizo @IBDesignable .
Modifiqué y agregué algunas características más (agregue Bottom Line y relleno para la imagen derecha) en esto.
NOTA si desea agregar una imagen en el lado derecho, puede seleccionar la Force Right-to-Left
opción en el semantic
generador de interfaces (pero para el relleno de la imagen derecha no funcionará hasta que anule el método rightViewRect).
He modificado esto y puedo descargar la fuente desde aquí ImageTextField