IOS视图中的CGAffineTransform

时间:2011-07-05 18:50:51

标签: objective-c rotation nsview quartz-2d cgaffinetransform

我正在尝试将一些iOS代码移植到Mac OS X.我无法移植它,

CGAffineTransform transform = CGAffineTransformMakeRoatation(-b->GetAngle());    
oneView.transform = transform

我怎样才能做到这一点? NSView没有转换属性。

2 个答案:

答案 0 :(得分:2)

您仍然可以使用转换。

通过将视图上的setWantsLayer:设置为YES,确保您的视图具有图层支持。

之后,你可以设置图层的仿射变换:

CGAffineTransform transform = CGAffineTransformMakeRotation(-b->GetAngle());    
[[oneView layer] setAffineTransform: transform];

答案 1 :(得分:0)

我发现用核心动画旋转NSView的唯一方法是

[myView setFrameCenterRotation:angle]

但要小心使用此方法。只有将myView添加到superview时,它才能正常工作。 您可以通过覆盖方法– viewWillMoveToSuperview:

来跟踪此情况

享受)