Eu gostaria de adicionar ícone / imagem em UITextField. O ícone / imagem deve ser deixado como espaço reservado.
Eu tentei isso:
var imageView = UIImageView();
var image = UIImage(named: "email.png");
imageView.image = image;
emailField.leftView = imageView;
Obrigado.
emailField.leftView = UIImageView(image: UIImage(named: "search"))
:)@IBDesignable
, podemos fazer isso de uma maneira elegante como neste exemplo: stackoverflow.com/a/51841433/8238512Respostas:
Tente adicionar
emailField.leftViewMode = UITextFieldViewMode.Always
(O padrão
leftViewMode
éNever
)Resposta atualizada para Swift 4
fonte
UITextFieldViewMode.Always
)? Você tem ideia do que foi que não funcionou? (por exemplo, ele compilou?)emailTextField
, isso realmente muda? E tem certeza de que a imagem está aí? Por exemplo, crie um outro UIImageView e carregueimage
nesse para verificar se funciona.imageView1.frame = CGRect(x: 5, y: 0, width: userName.frame.height, height: userName.frame.height) view.addSubview(imageView1)
Sahil tem uma ótima resposta e eu queria pegar isso e expandi-lo em um @IBDesignable para que os desenvolvedores possam adicionar imagens a seus UITextFields no Storyboard.
Swift 4.2
O que esta acontecendo aqui?
Este designável permite que você:
Notas
Projetável no Storyboard
Em tempo de execução
fonte
Eu só quero adicionar mais alguma coisa aqui:
Se você quiser adicionar a imagem no
UITextField
lado esquerdo, use aleftView
propriedade deUITextField
NOTA: Não se esqueça de conjunto
leftViewMode
deUITextFieldViewMode.Always
e para a direitarightViewMode
paraUITextFieldViewMode.Always and
o padrão éUITextFieldViewModeNever
por exemplo
Para adicionar uma imagem no lado esquerdo
Para adicionar uma imagem no lado direito
NOTA: algumas coisas você precisa tomar cuidado ao adicionar uma imagem no
UITextField
lado esquerdo ou direito.Não se esqueça de indicar o
ImageView
que você vai adicionarUITextField
let imageView = UIImageView (frame: CGRect (x: 0, y: 0, largura: 20, altura: 20))
se o fundo da sua imagem for branco, a imagem não será visível em
UITextField
se você deseja adicionar uma imagem à posição específica que você precisa adicionar
ImageView
como a subvisualização deUITextField
.Atualização para Swift 3.0
@Mark Moeykens Muito bem gasto e torná-lo @IBDesignable .
Eu modifiquei e adicionei mais alguns recursos (adicionar Bottom Line e padding para a imagem certa) neste.
OBSERVAÇÃO se você deseja adicionar uma imagem no lado direito, você pode selecionar a
Force Right-to-Left
opção nosemantic
construtor de interface (mas para o preenchimento de imagem correto não funcionará até que você substitua o método rightViewRect).Eu modifiquei isso e posso baixar o código-fonte aqui ImageTextField
fonte
Outra forma, inspirada em posts anteriores, para fazer uma extensão.
Podemos colocar a imagem à direita ou à esquerda
Usar :
Aproveitar :)
fonte
Para criar preenchimento, gosto de colocar a imagem dentro de uma visualização de contêiner. Você pode remover a cor de fundo assim que estiver satisfeito com o posicionamento do ícone.
fonte
para Swift 3.0 adicionar imagem no lado esquerdo do textField
fonte
Swift 5
Eu criei extensão
Resultado
fonte
2020 - solução razoável
Sobre essa loucura da Apple.
Esta é talvez a maneira mais "clara" e simples de fazer isso:
Primeiro, você deve mover o texto corretamente.
Observe este QA crítico: https://stackoverflow.com/a/27066764/294884
continuando, agora temos que fazer e mover a imagem à esquerda:
Esta parece ser a maneira mais clara e confiável de fazer isso.
fonte
Criei um IBDesignable simples. Use-o como quiser. Basta fazer seu UITextField confirmar para esta classe.
fonte
Outra maneira de definir o ícone de espaço reservado e definir o preenchimento para TextField.
fonte
Swift 3.1
fonte
Você pode colocar esta função em seu arquivo global ou acima de sua classe para que você possa acessá-la em todo o aplicativo. Após este procedimento, você pode chamar esta função de acordo com seus requisitos no aplicativo.
fonte
Por que você não escolhe a abordagem mais fácil. Para a maioria dos casos, você deseja adicionar ícones como fontes incríveis ... Basta usar a biblioteca incrível de fontes e seria tão fácil adicionar um ícone a um campo de texto como este:
Você precisaria instalar primeiro esta biblioteca rápida: https://github.com/Vaberer/Font-Awesome-Swift
fonte
Esta é uma versão modificada da resposta de Mark Moeykens com preenchimento adicional entre imagem e texto e tamanho de imagem ajustável caso alguém precise.
Swift 4
fonte
Swift 5
Semelhante ao @Markus, mas no Swift 5 :
fonte
SwiftUI
Resultados
fonte
Usando a extensão em Swift4, podemos facilmente colocar a imagem à direita ou à esquerda com preenchimento para TextField.
Use o código para a configuração da imagem esquerda: -
Resultado :)
fonte