2

我是 CG 绘图的新手,我对 CG 代码的去向感到困惑。

是什么阻止了将绘图函数放在 UIViewController 和 UIView 中的想法?我应该如何确定 CG 代码的哪些部分应该放在哪里?我看到一些教程在视图控制器的 viewDidLoad 中有代码,但其他人说它在视图中。什么决定什么去哪里?

(是的,这是一个 MVC 问题,但我仍然难以区分。)

4

2 回答 2

3

自定义绘图代码的正确位置(几乎总是)drawRectUIView. 通常的方法是创建 UIView 的自定义子类,并将其作为视图控制器的根视图。例如,在视图控制器的loadView方法中,您可以分配(self.view = [[MyCustomView alloc] init];如果您使用非 ARC 代码,则自动释放该视图!)然后您的自定义绘图代码应该进入drawRect.MyCustomView

于 2013-04-22T23:55:58.523 回答
0

Core Graphics 绘图代码可以去任何有效上下文的地方。这意味着如果您创建自己的上下文,它可以进入您自己的函数。

您通常将 Core Graphics 绘图代码放在 UIView 子类中的原因是您通常可能希望将代码封装在可重用的形式中。但是如果你打算从 Core Graphics 代码创建一个图像,你可以轻松地启动一个新的图像上下文,绘制,然后将上下文的内容保存到 UIImage 中。这种类型的绘图可以去任何地方,甚至是 UIViewController。Core Graphics 绘图甚至可用于生成 PDF。它只是一个简单的几何绘图框架。只要您有一个有效的上下文,无论drawRect:是在 UIView 中调用之前创建的上下文还是在命令中创建的上下文。

于 2013-04-22T23:57:07.107 回答