使用 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)
通过这种方式,您可以设置按钮图像状态,并且如果图像名称发生更改,它不会影响您的代码。