【问题标题】:How to draw using Quartz 2D to my ViewController如何使用 Quartz 2D 绘制到我的 ViewController
【发布时间】:2015-02-09 18:54:28
【问题描述】:

这是一个初学者级别的问题。我继承了一个 iOS 项目,它是用一些带有相关 XIB 文件的 ViewController 实现的。 XIB 文件包含由 ViewControllers 中的代码控制的各种小部件(我认为这是构建应用程序的标准方式)。

但是,我需要在小部件之间进行一些自定义绘图(矩形、线条、圆圈、文本),并且我想使用 Quartz 2D 库来执行此操作。我从未使用过 Quartz2D,而且我发现的大多数示例代码都以 View 为中心,而不是 ViewController。

其中大部分似乎与实现视图的“drawRect”方法有关。但是,据我所知,我的 ViewController 没有“drawRect”功能。有没有办法在我的 ViewController 或它控制的任何 View 上实现“drawRect”功能?

*** 附录: 我研究并提醒自己,可操作的 UIView 是 UIViewController 的一个属性,看起来 UIView 是由应用程序自动创建的,并与我的 XIB 和 ViewController 捆绑在一起(我想我们在创建时选择了“也创建 XIB”一个 ViewController,所以 UIView 是隐含的?)。我看不到这个默认的 UIView 实例化发生在哪里。但是我认为绘制它的方法是对其进行子类化?

如果是这样,在保持与现有 ViewController 和 XIB(或情节提要)的连接的同时,继承此 UIView 并访问 drawRect 的最干净方法是什么?我继承了这个项目,这个改变需要是低影响的。


感谢您的任何帮助/想法。

【问题讨论】:

    标签: ios iphone quartz-graphics


    【解决方案1】:

    创建UIView 的子类并覆盖-drawRect: 以进行自定义绘图。在 xib 中,选择视图控制器的视图,转到 Identity Inspector(Xcode 右侧边栏中的第三个选项卡),然后将 UIView 替换为您的自定义子类。

    【讨论】:

    • 听起来很完美......但我不太明白在身份检查器中替换 UIView 的位置。也许是因为(我可能应该指出)它基于故事板,而不是 XIB(也是 xcode 5.1)。当我在情节提要中单击我的窗口并选择身份检查器时,第一个框是“自定义类”,该类是“ViewControllerMain”,这是我的自定义视图控制器。我没有看到可以替换 UIView 的地方...
    • 哦等等...当我在情节提要中双击并单击时,它是一个不同的身份检查器。明白了,有效。谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多