我試圖實現一個由draw
方法繪製的程序化圖像,該方法能夠以任何分辨率繪製完美的圖像。想象一下可以調整尺寸的程序化紋理,以填充任何區域而無需拉伸或插值。如何使NSImage自動縮放到NSImageView?
爲此,我創建了一個自定義NSImageRep
,它實現了繪圖代碼。該方法中的代碼可以訪問圖像代表的大小,因此它可以爲每個大小重新繪製自己。要顯示圖像,我將此NSImageRep
分配給NSImage
,然後將其傳遞給NSImageView
。
現在的問題是NSImage
不會調整大小。我的意思是它延伸並插入以填充NSImageView
,但NSImage
的大小不會改變,因此它的NSImageRep
繪圖代碼總是繪製到最初創建NSImage
的大小。我可以改變NSImage
的大小,它會
換句話說,我已經成功實現了一個NSImage
,它可以在任何大小(無內插)下正確繪製自己。所以我的問題是,如何使NSImage
自動調整大小以匹配它放入的NSImageView
的大小?
理想情況下,我想實現這個作爲NSImage
類別,但我不知道如何繼續。
N.B.我知道這聽起來像我只是想實現一個自定義NSView
,但重要的是我試圖從iOS'UIImage
複製resizableImageWithCapInsets:
方法,並創建一個OS X'NSImage
的實現。