【发布时间】:2012-12-11 19:43:44
【问题描述】:
我正在编写一个自定义 NSView,它需要在绘制子视图之前应用 NSAffineTransformation 为其子视图设置动画。
我正在寻找一种方法来绘制视图的子视图,以便我可以覆盖它 以这样的方式:
-(void)drawSubview:(NSView*)subview {
[[NSGraphicsContext saveGraphicsState];
[[self affineTrasformForSubview: subview] concat];
[subview drawRect: subview.bounds];
[[NSGraphicsContext restoreGraphicsState];
}
有什么建议吗?
【问题讨论】:
-
你真正想要达到什么目的?
-
每个子视图自己负责绘制;您的 NSView 子类无法控制它们的操作。
-
@Jay 我想在创建自定义动画之前应用转换。也许可以通过图层来做到这一点?
-
@Ben-Uri 是的,我想这就是您想要做的。有助于了解总体目标,例如:嘿,我想将窗口内容倾斜 90 度,等等。
-
您可以通过调用
setNeedsDisplay来强制子视图(或您自己)重绘。
标签: cocoa drawing core-animation core-graphics nsview