使用IBDesignable以编程方式从Assets访问NSImage
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用IBDesignable以编程方式从Assets访问NSImage相关的知识,希望对你有一定的参考价值。
通过NSImage(named: "image_name")
进行的常规加载会崩溃IBDesignable渲染器,因为它显然是在一个单独的包中运行。
在ios中,有一种解决方法可以显式加载在包中传递的图像:
let bundle = Bundle(for: self.classForCoder)
let image = UIImage(named: "image_name", in: bundle, compatibleWith: self.traitCollection)!
在Cocoa中,缺少模拟初始化器。
有没有其他方法从Assets目录加载图像?
答案
如果您使用的是Swift 3或更高版本,则可以尝试图像文字。它应该在Xcode中自动完成,所以如果它不起作用,它可能表明资产本身有问题。以UIButton为例:
let myButton = UIButton()
myButton.setImage(#imageLiteral(resourceName: "image_name"), for: .normal)
通过键入Image Literal
Xcode应自动完成它并创建一个小图标,您可以双击打开图像选择器并选择要使用的图像。有关图像文字和文字的更完整指南可以找到here
以上是关于使用IBDesignable以编程方式从Assets访问NSImage的主要内容,如果未能解决你的问题,请参考以下文章
@IBDesignable , NSLayoutConstraint 用于超级视图的比例乘数宽度?
如何使用 @IBDesignable 和 @IBInspectable 制作 uitextfield 的自定义子类并在那里我可以从左侧设置占位符填充