1

我正在尝试实现一个程序化图像,该图像由一种draw能够以任何分辨率绘制完美图像的方法绘制。想想一个程序化纹理,它可以调整大小以填充任何区域而无需拉伸或插值。

为此,我创建了一个NSImageRep实现绘图代码的自定义。此方法中的代码可以访问图像代表的大小,因此它可以为每个大小重新绘制自己。为了显示图像,我将它分配NSImageRep给一个NSImage,然后我将它传递给一个NSImageView

现在的问题是NSImage不会调整大小。我的意思是它会拉伸并插入以填充NSImageView,但 的大小NSImage不会改变,因此它的NSImageRep绘图代码总是绘制成NSImage最初创建的大小。我可以改变的大小,NSImage它会

换句话说,我已经成功地实现了一个NSImage可以在任何尺寸下正确绘制自己(没有插值)。所以我的问题是,我如何NSImage自动调整大小以匹配NSImageView它所在的大小?

理想情况下,我想将其作为一个类别来实现,NSImage但我不确定如何进行。

注意我知道这听起来我只是想实现一个自定义NSView但大局是我试图resizableImageWithCapInsets:从 iOS' 复制该方法UIImage并为 OS X' 创建一个实现NSImage

4

1 回答 1

0

把...忘了吧NSImageRep

你想用的只是NSImage

+ (id)imageWithSize:(NSSize)size flipped:(BOOL)drawingHandlerShouldBeCalledWithFlippedContext drawingHandler:(BOOL (^)(NSRect dstRect))drawingHandler

这将使您能够做您想做的事。

于 2014-01-12T12:19:34.887 回答