cocoa - 手动绘制NSView的 subview

标签 cocoa drawing core-animation core-graphics nsview

我正在编写一个自定义 NSView,需要在绘制 subview 之前应用 NSAffineTransformation 对其 subview 进行动画处理。

我正在寻找一种绘制 View subview 的方法,以便我可以覆盖它 以这样的方式:

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

有什么建议吗?

最佳答案

旋转:NSView setFrameCenterRotation:angle

用于缩放:NSView scaleUnitSquareToSize:size

除了旋转和缩放之外,您还需要使您的 View 成为一个支持图层的 View ,并弄乱该图层,即使这违反了苹果的建议。但我不会对此太担心,我认为值得一试。

关于cocoa - 手动绘制NSView的 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13827321/

相关文章:

python - 在 python 中绘制具有不同角度的填充矩形

iphone - 拉伸(stretch) UIImage 同时保留角点

iphone - CAAnimations,并更新图层树

objective-c - 如何调试由 UIKit 的 CoreAnimation 调用触发的崩溃?

Swift- 在 Cocoa 中播放系统默认声音的最简单方法(macOS、OS X)

macos - 如何在 Mac OS X 上从终端启用用户帐户 SMB 共享?

objective-c - 在 Mac OS X 上录制屏幕视频

objective-c - 禁用 Cocoa 应用程序的子像素抗锯齿

ios - 了解 UIGraphicsGetCurrentContext()

iphone - setAnimationRepeatAutoreverses 的行为不符合我的预期