NSImage drawInRect:fromRect:operation:fraction导致翻转图像

ane*_*yzm 4 cocoa objective-c

我用的时候:

[iconImage drawInRect:NSMakeRect(cellFrame.origin.x+5,yOffset+3,cellFrame.size.height-6, cellFrame.size.height-6)
                     fromRect:NSMakeRect(0,0,[iconImage size].width, [iconImage size].height)
                    operation:NSCompositeSourceOver
                     fraction:1.0];
Run Code Online (Sandbox Code Playgroud)

要在NSOutlineView单元格中绘制一些图像,图像会垂直翻转.我该如何解决?

谢谢

Mar*_*ark 7

使用该方法

- (void)drawInRect:(NSRect)dstSpacePortionRect
          fromRect:(NSRect)srcSpacePortionRect
         operation:(NSCompositingOperation)op
          fraction:(CGFloat)requestedAlpha
    respectFlipped:(BOOL)respectContextIsFlipped
             hints:(NSDictionary *)hints
Run Code Online (Sandbox Code Playgroud)

随着 - (void)lockFocusFlipped:(BOOL)flipped

将图像颠倒过来.来自NSImage参考手册.

  • 另外,将`NSZeroRect`作为`srcSpacePortionRect`传递,将绘制完整的图像.保存你不得不做`NSMakeRect(0,0,[iconImage size] .width,[iconImage size] .height)`. (3认同)