Objective c NSView背景图像由3个不同的文件组成
我正在尝试设置NSView的背景图像。(实际上是一个NSScrollView。)目前,我正在子类化drawRect:并使用Objective c NSView背景图像由3个不同的文件组成,objective-c,cocoa,image,nsview,Objective C,Cocoa,Image,Nsview,我正在尝试设置NSView的背景图像。(实际上是一个NSScrollView。)目前,我正在子类化drawRect:并使用NSDrawThreePartImage来绘制图像,但每当我开始滚动时,有一些事情是不正确的 有没有更好的方法来绘制图像 - (void)drawRect: (NSRect)dirtyRect { dirtyRect.size.height -= 18; //Moving the image up a bit for future subclassing of NS
NSDrawThreePartImage
来绘制图像,但每当我开始滚动时,有一些事情是不正确的
有没有更好的方法来绘制图像
- (void)drawRect: (NSRect)dirtyRect
{
dirtyRect.size.height -= 18; //Moving the image up a bit for future subclassing of NSScroller.
NSDrawThreePartImage(dirtyRect, viewLeftCap, viewFill, viewRightCap, NO, NSCompositeSourceOver, 1, YES);
}
如果要重画整个视图,应该使用[self bounds],而不是传递到-drawRect:方法中的rect。
NSDrawThreePartImage
通常是首选方法。您可能应该发布您的drawRect:
implementation.Added。不过不多。是的,就是这样!万分感谢!具体地说,Jane,dirtyRect
就是:脏的矩形。“脏”是指需要更新;在这种情况下,需要重新绘制。您需要重新绘制视图边界的部分。你可以多画,但不能少画。(出于性能原因,不鼓励绘制比脏矩形更多的内容,但在其他方面它是无害的,有时是不可避免的。我建议在没有其他方法不在脏矩形之外绘制时(如本例中)剪切到脏矩形。)感谢对此的深入了解。