通过 NSImage(named: "image_name")
进行常规加载会导致 IBDesignable 渲染器崩溃,因为它显然在单独的包中运行。
在 iOS 中,有一种解决方法可以显式加载在包中传递的图像:
让bundle = Bundle(对于:self.classForCoder)
让图像= UIImage(命名:“image_name”,在:捆绑,兼容:self.traitCollection)!
在 Cocoa 中,模拟初始化器丢失。
还有其他方法可以从资源目录加载图像吗?
最佳答案
如果您使用的是 Swift 3 或更高版本,您可以尝试图像文字。它应该在 Xcode 中自动完成,因此如果它不起作用,则可能表明 Assets 本身存在问题。以使用 UIButton 为例:
let myButton = UIButton()
myButton.setImage(#imageLiteral(resourceName: "image_name"), for: .normal)
通过输入 Image Literal
Xcode 应该会自动完成它并创建一个小图标,您可以双击该图标来打开图像选择器并选择您要使用的图像。有关图像文字和一般文字的更完整指南可以在 here 中找到。
关于swift - 使用 IBDesignable 以编程方式从 Assets 访问 NSImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52737445/