0

imageView の中央にある imageview にデフォルトの画像を描画する方法 - (void)drawRect:(NSRect)rect NSImageView の上書きメソッド

4

2 に答える 2

3

はい。それが一つの方法でした。次のコードを使用しました。

// Drawing 

   - (void)drawRect:(NSRect)rect
{
    if([self image])
    {       
        [[NSColor grayColor] set];
        NSRectFill(rect);

        //ImageView Bounds and Size
        NSRect vBounds = [self bounds];
        NSSize vSize = vBounds.size;

        //Get the size and origin of default image set to imageView
        NSRect imageRect;
        imageRect.size = [[self image] size];
        imageRect.origin = NSZeroPoint;

        //Create a preview image
        NSSize previewSize = NSMakeSize( [self image].width / 4.0, [self image].height / 4.0 );
        NSImage *previewImage = [[NSImage alloc] initWithSize:previewSize];


        //Get the point where the preview image needs to be draw
        NSRect newRect;
        newRect.origin.x = vSize.width/2-previewSize.width/2;
        newRect.origin.y = vSize.height/2-previewSize.height/2;
        newRect.size = [previewImage size];

        //Draw preview image in imageView
        [[self image] drawInRect:newRect fromRect:imageRect operation:NSCompositeSourceOver fraction:1.0];

        [previewImage release]; 
    }
}
于 2009-07-01T07:38:51.080 に答える
1

画像ビューの画像を最初にデフォルトの画像に設定し、後で変更しないのはなぜですか?

于 2009-07-01T07:16:32.560 に答える