Usando Xcode 9.2 ninguna de las soluciones anteriores funcionó para lo que estaba buscando.
Estaba buscando una solución que me permitiera configurar .normale .selected UIControlStateimá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 .normalestado y la volverá a representar como .alwaysOriginal(Lo mismo para el .selectedestado), luego, configurará esa imagen (que ahora se representa como original y no se verá afectada por el tinte) para el estado relevante ( .normaly .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.