我现在已经浏览互联网两天了,显然我错过了一些东西。我试图为NSImageView
实现偏斜效果。我发现堆栈溢出this question,这表明它是可能的。此外,在Apple Documentation中,它表明允许使用NSAffineTransformStruct
的NSAffineTransform。
尽管如此:它不起作用。我唯一能做的就是NSAffineTransform rotateByDegrees
,NSAffineTransform scaleXBy:foo yBy:foo
。其他一切都没有显示任何明显的效果。我没有得到任何错误,只是没有结果。
所以我的问题是:OSX上的应用程序不允许使用NSAffineTransform
进行非均匀缩放吗?如果是这样,为什么Xcode(至少)没有警告我呢?或者我在这里遗漏了什么(比如编程错误)?
任何帮助将不胜感激!
我使用的代码:
- (void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];
// Drawing code here.
NSAffineTransform *rotate = [[NSAffineTransform alloc] init];
NSGraphicsContext *context = [NSGraphicsContext currentContext];
[context saveGraphicsState];
[currentImage lockFocus];
[rotate setTransformStruct:currentTransForm]; //This is filled in another routine
[rotate concat];
/* Your drawing code [NSImage drawAtPoint....]for the image goes here
Also, if you need to lock focus when drawing, do it here. */
CGRect imageRect = dirtyRect;
[self.image drawInRect:imageRect fromRect:NSZeroRect operation:NSCompositeCopy fraction:1.0];
[self.image unlockFocus];
[context restoreGraphicsState];
}