我正在尝试实现一个程序化图像,该图像由一种draw
能够以任何分辨率绘制完美图像的方法绘制。想想一个程序化纹理,它可以调整大小以填充任何区域而无需拉伸或插值。
为此,我创建了一个NSImageRep
实现绘图代码的自定义。此方法中的代码可以访问图像代表的大小,因此它可以为每个大小重新绘制自己。为了显示图像,我将它分配NSImageRep
给一个NSImage
,然后我将它传递给一个NSImageView
。
现在的问题是NSImage
不会调整大小。我的意思是它会拉伸并插入以填充NSImageView
,但 的大小NSImage
不会改变,因此它的NSImageRep
绘图代码总是绘制成NSImage
最初创建的大小。我可以改变的大小,NSImage
它会
换句话说,我已经成功地实现了一个NSImage
可以在任何尺寸下正确绘制自己(没有插值)。所以我的问题是,我如何NSImage
自动调整大小以匹配NSImageView
它所在的大小?
理想情况下,我想将其作为一个类别来实现,NSImage
但我不确定如何进行。
注意我知道这听起来我只是想实现一个自定义NSView
但大局是我试图resizableImageWithCapInsets:
从 iOS' 复制该方法UIImage
并为 OS X' 创建一个实现NSImage
。