无法旋转NSView

时间:2013-11-12 01:07:43

标签: ios objective-c macos rotation nsview

旋转NSView

时遇到问题

假设我有NSImageView这样的话:

sampleImage = [[NSImageView alloc] initWithFrame:CGRectMake(50,50,50,50)];
sampleImage.image = [NSImage imageNamed:@"image"];
[self.view addSubview:sampleImage];

看起来像这样:

photo 1

现在我想将此图像旋转60度。我已经尝试了几个解决这个问题的方法,但没有一个能给我带来满意的结果。

我试过了:

[sampleImage rotateByAngle:60];

结果如下:

photo 2

[sampleImage setFrameCenterRotation:60];

结果:

photo 3

使用AffineTransform和图层(我也为超级视图设置wantsLayer = YES)根本不会旋转图像:

sampleImage.wantsLayer = YES;
sampleImage.layer.affineTransform = CGAffineTransformMakeRotation(60);

使用CATransform3DMakeRotation进行旋转也不起作用:

sampleImage.transform = CATransform3DMakeRotation(GLKMathRadiansToDegrees((float) -marker.rotation), 0, 0, 1.0);

在OSX中旋转图像的正确方法是什么?在IOS上它是一块蛋糕:应用正确的仿射变换工作就像一个魅力 - 看起来OSX上的Cocoa不太愿意旋转视图。

0 个答案:

没有答案