这是一个初学者级别的问题。我继承了一个 iOS 项目,它是通过一些具有关联 XIB 文件的 ViewController 来实现的。 XIB 文件包含由 ViewController 中的代码控制的各种小部件(我认为这是构建应用程序的标准方法)。
但是,我需要在小部件之间进行一些自定义绘图(矩形、线条、圆形、文本),并且我想使用 Quartz 2D 库来执行此操作。我从未使用过 Quartz2D,而且我找到的大多数示例代码都是以 View 为中心,而不是 ViewController。
大部分似乎与实现 View 的“drawRect”方法有关。但是,据我所知,我的 ViewController 没有“drawRect”函数。有没有办法在我的 ViewController 或它控制的任何 View 上实现“drawRect”函数?
*** 附录: 我已经研究并提醒自己,可操作的 UIView 是 UIViewController 的一个属性,而且 UIView 似乎是由应用程序自动创建的,并与我的 XIB 和 ViewController 捆绑在一起(我想我们在创建时选择了“也创建 XIB”一个 ViewController,所以 UIView 是隐含的?)。我不知道这个默认的 UIView 实例化发生在哪里。但我认为绘制它的方法是对其进行子类化?
如果是这样,最干净的方法是什么来继承此 UIView 并访问 drawRect,同时保持与现有 ViewController 和 XIB(或 Storyboard )的连接?我继承了该项目,并且此更改需要影响较小。
感谢您的帮助/想法。
最佳答案
创建 UIView
的子类并覆盖 -drawRect:
来执行自定义绘图。在 xib 中,选择 View Controller 的 View ,转到 Identity Inspector(Xcode 右侧边栏中的第三个选项卡),然后将 UIView
替换为您的自定义子类。
关于ios - 如何使用 Quartz 2D 绘制到我的 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28417151/