Використовуючи Xcode 9.2, жодне з перерахованих вище рішень не працювало на те, що я шукав.
Я шукав рішення, яке дозволить мені встановити .normal
і .selected
UIControlState
зображення всередині аркуша розкадрівки для їх оригінального режиму візуалізації , але всередині файлу Swift не повинно існувати жодних рядкових літералів щодо назв зображень.
В основному, всередині вашого коду ви отримаєте зображення, яке ви встановили у своїй дошці розкадрування для .normal
стану, і повторно виведете його як .alwaysOriginal
(Те саме для .selected
стану), тоді ви встановите це зображення (яке тепер відображається як оригінальне і на нього не впливатиме відтінок) для відповідного стану ( .normal
і .selected
) вашогоUIButton
.
Ось:
// 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)
Таким чином ви можете встановити стан зображення зображення, і якщо ім'я зображення зміниться, це не вплине на ваш код.