cocoa - 如何在imageView的中心绘制一个默认的imageview图像?

标签 cocoa drawrect

如何在imageView的中心绘制一个默认图像?使用 NSImageView 的 - (void)drawRect:(NSRect)rect 重写方法

最佳答案

是的。这是一种方式。我使用了以下代码。

// 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]; 
    }
}

关于cocoa - 如何在imageView的中心绘制一个默认的imageview图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1067480/

相关文章:

objective-c - 使用多个 NSUInteger 枚举作为方法的参数

objective-c - 为什么 NSWindow 的 contentView 属性是类型 id?

cocoa - 创建用于打印的 Webview 时出现问题

ios - drawRect 绘图的动画

ios - 按下按钮时更改自定义 UIButton (CoreGraphics) 的背景颜色

cocoa - 德国版的 mac os Tiger 和“关于”面板

xcode - NSTableCellView 设置可编辑

ios - IBOutlet 在 drawRect 方法中为 nil

ios - 可拖动的 UIView 移动不正确

iphone - UIScrollView 滚动时重绘内容?