swift - 如何在 Swift 中像数组一样访问图像资源

标签 swift xcode ios10

在我的应用程序中,我允许用户根据颜色更改一些 UI 元素。因此,我有一个可用于按钮的图像的三个版本,我想以编程方式选择图像:

PSEUDO CODE
"image0", "image1", "image3"
var userChoice:integer

myButton.setImage("myImage"+userChoice , .normal)

我在 SO 中看到了这个解决方案: Programmatically access image assets

什么是 Swift 等效代码?

现在我正在使用图像文字:

self.But_Settings.setImage(#imageLiteral(resourceName: "settingswhite"), for: UIControlState.normal)

当然,Xcode 会将这部分“#imageLiteral(resourceName: "settingswhite")”更改为无法编辑的图标。

最佳答案

那就不要使用图像字面量。图像文字就是这样 - 代码中的硬值,您在运行时无法更改。从您的包中动态加载图像:

if let image = UIImage(named: "myImage" + userChoice) {
    self.But_Settings.setImage(image, for: .normal)
}

关于swift - 如何在 Swift 中像数组一样访问图像资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42320139/

相关文章:

ios - 带解析的 iMessage 扩展

ios - MPNowPlayingInfoCenter Remote 在 iOS 10 中响应不正确

ios - CallKit (Call Directory Extension) 可以识别和阻止蜂窝电话吗

Swift:即使将动态设置为 false, Sprite 节点在碰撞期间仍然是动态的?

iphone - Reminders.app UIScrollView 滚动解释。

swift - 无法将类型 '(String) -> Void' 的值转换为预期参数类型 '((AnyObject!) -> Void)!'

ios - Swift 自定义协议(protocol)调用多个函数

swift - 删除相互依赖的对象时了解核心数据

ios - -canOpenURL : failed for URL: "fbauth2:/" - error: "(null)" for ios 9 (swift)

iphone - ViewController 不调用 deinit 方法 swift 4