Usando Xcode 9.2 ninguna de las soluciones anteriores funcionó para lo que estaba buscando.
Estaba buscando una solución que me permitiera configurar .normal
e .selected
UIControlState
imágenes dentro del guión gráfico para su modo de representación original , pero, dentro del archivo Swift, no deberían existir literales de cadena con respecto a los nombres de las imágenes.
Básicamente, dentro de su código obtendrá la imagen que configuró dentro de su guión gráfico para el .normal
estado y la volverá a representar como .alwaysOriginal
(Lo mismo para el .selected
estado), luego, configurará esa imagen (que ahora se representa como original y no se verá afectada por el tinte) para el estado relevante ( .normal
y .selected
) de suUIButton
.
Aquí está:
// Get your .normal image (you set via your storyboard) and render it as original
let unselectedImage = yourButton.image(for: .normal)?.withRenderingMode(.alwaysOriginal)
// Set your normal image but this time rendered as original
yourButton.setImage(unselectedImage, for: .normal)
// Same for selected state
let selectedImage = yourButton.image(for: .selected)?.withRenderingMode(.alwaysOriginal)
yourButton.setImage(selectedImage, for: .selected)
De esta manera, puede configurar los estados de imagen de su botón y si el nombre de la imagen cambia, no afectará su código.