win*_*nck 6 macos cocoa core-graphics objective-c quartz-2d
获取NSView的CGContext -drawRect:并使用它以后执行更多绘图是否安全?在像这样的简单测试中:
CGContextRef context = NULL;
- (void)drawRect:(NSRect)r
{
if (!context)
context = [[NSGraphicsContext currentContext] graphicsPort];
}
- (void)drawSomething
{
CGContextSetRGBFillColor(context, 1, 0, 0, 1);
CGContextFillRect(context, CGRectMake (0, 0, 100, 100));
CGContextFlush(context);
}
Run Code Online (Sandbox Code Playgroud)
-drawSomething调用时似乎一切正常,但它是否保证上下文不会改变?
你可以看到并猜测,我试图绕过标准的绘图方式-drawRect:.它适用于无数场合,但是在我的特定情况下,更加程序化的绘图方式会让生活变得更轻松.
你不应该这样做.上下文不保证存在于外部,drawRect:并且您的绘图代码工作的事实是一个快乐的事故.不要依赖这种行为.
如果你需要在任何时候强制绘图,你应该调用display视图,然后调用它drawRect:.
| 归档时间: |
|
| 查看次数: |
5413 次 |
| 最近记录: |