Eu tenho um conjunto de ícones que criei que são PNGs brancos transparentes:
E o que eu gostaria de fazer é poder tingi-los com outras cores. Como azul, cinza, etc.
Notei que 'clicado / tocado' eles mudam automaticamente para cinza. Então, presumo que posso mudar esse cinza para o que eu quiser com um toque ou em seu estado normal:
Qual seria a melhor forma de o conseguir?
iOS 7 introduziu uma propriedade chamada tintColor para visualizações (incluindo UIImageView). No entanto, você também precisa definir o tipo de renderização no UIImage para que isso tenha algum efeito.
Isso deve produzir o efeito que você deseja em um estado padrão.
fonte
Você pode usar esta extensão:
fonte
Para alterar a tonalidade da imagem ( escolha , imagem clássica , foto ), use:
Imagem de exemplo:
Swift 2
UPD
Swift 3
fonte
Se você estiver definindo a imagem de um botão, basta ir ao inspetor de atributos e alterar o tipo de botão para sistema. Em seguida, defina a imagem e altere a cor da tonalidade. A cor da imagem mudará. Caso contrário, verifique o tipo de botão.
fonte
Swift 4 ou 5
Usar:
fonte
Se você usar catálogos de ativos, poderá definir o próprio ativo de imagem para renderizar no modo de modelo. Depois disso, você pode definir o tintColor do botão no Interface Builder (ou no código) e ele deve funcionar.
fonte
Swift 4
fonte
Se você usar catálogos de ativos, poderá definir o próprio ativo de imagem para renderizar no modo de modelo. Depois disso, você pode definir o tintColor do botão no Interface Builder (ou no código) e ele deve funcionar.
fonte
Encontrei a abordagem mais fácil abaixo,
Abra o catálogo de ativos e selecione a imagem, em seguida, vá para o inspetor de atributos e mude
Render As
paraTemplate Image
como abaixoEm seguida, adicione o código abaixo no botão Método de ação
fonte
Swift 4 e 4.2
fonte