手动绘制NSView的子视图

时间:2012-12-11 19:43:45

标签: cocoa drawing core-animation core-graphics nsview

我正在编写一个自定义NSView,需要通过在绘制之前应用NSAffineTransformation来为其子视图设置动画。

我正在寻找一种方法来绘制视图的子视图,以便我可以覆盖它 以这样的方式:

-(void)drawSubview:(NSView*)subview {
    [[NSGraphicsContext saveGraphicsState];
    [[self affineTrasformForSubview: subview] concat];
    [subview drawRect: subview.bounds];
    [[NSGraphicsContext restoreGraphicsState];
}

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

用于旋转:NSView setFrameCenterRotation:angle

用于缩放:NSView scaleUnitSquareToSize:size

除了旋转和缩放之外,你需要让你的视图成为一个图层支持的图层,并且与图层混乱,即使这是针对苹果推荐的。但我不会过分担心,我认为值得一试。