使用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 自定义视图?

使用 IBDesignable 的水平虚线

如何使用 @IBDesignable 和 @IBInspectable 制作 uitextfield 的自定义子类并在那里我可以从左侧设置占位符填充

如何使用创建的自定义 IBDesignable 类从情节提要中更改按钮的角半径

从 Asset Bundle 加载资源以在 Unity 中进行 Play 资源交付