1

draw任意の解像度で完璧な画像を描画できる方法で描画されるプログラム画像を実装しようとしています。ストレッチや補間なしで任意の領域を塗りつぶすようにサイズを変更できるプログラム テクスチャを考えてみてください。

NSImageRepそのために、描画コードを実装するカスタムを作成しました。このメソッド内のコードは、画像表現のサイズにアクセスできるため、サイズごとに再描画できます。NSImageRep画像を表示するには、これをに割り当てNSImage、それを に渡しNSImageViewます。

問題は、NSImageサイズが変更されないことです。つまり、を埋めるために引き伸ばして補間しますNSImageViewが、 のサイズはNSImage変わらないため、NSImageRep描画コードは常にNSImageが最初に作成されたサイズに描画されます。のサイズを変更できますNSImage

言い換えればNSImage、任意のサイズで(補間なしで)適切に描画できる の実装に成功しました。私の質問は、配置されているNSImageサイズに合わせて自動的にサイズを変更するにはどうすればよいですか?NSImageView

理想的には、これをカテゴリとして実装したいのNSImageですが、どうすればよいかわかりません。

NB カスタムを実装したいだけのように聞こえることはわかっています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 に答える