在视图控制器中的视图内绘制一条线

Posted

技术标签:

【中文标题】在视图控制器中的视图内绘制一条线【英文标题】:Drawing a line within a view within a viewcontroller 【发布时间】:2011-04-24 21:57:31 【问题描述】:

所以我现在一直在寻找解决方案,但我就是不知道出了什么问题。不使用objectice c 长,几天。所以,问题是这样的:

所以,我创建了这些: 绘画TestViewController.h 绘画TestViewController.m 绘画TestviewController.xib

然后我创建 测试绘图.h TestDraw.m

双击xib文件,创建一个新视图,选择它,打开inspector,设置class指向TestDraw。

然后我打开 TestDraw.m 并删除周围的 cmets - void Drawrect...

这个方法里面我加了

CGContextRef 上下文 = UIGraphicsGetCurrentContext();

CGContextSetLineWidth(context, 2.0);

CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();

CGFloat components[] = 0.0, 0.0, 1.0, 1.0;

CGColorRef color = CGColorCreate(colorspace, components);

CGContextSetStrokeColorWithColor(context, color);

CGContextMoveToPoint(context, 0, 0);
CGContextAddLineToPoint(context, 300, 400);

CGContextStrokePath(context);
CGColorSpaceRelease(colorspace);
CGColorRelease(color);

我之前用一个只有视图而不是视图控制器的应用程序对此进行了测试。 但是现在我得到了一堆错误

.. .. -[TestDraw drawRect:] 在 TestDraw.o “_CGContextStrokePath”,引用自: -[TestDraw drawRect:] 在 TestDraw.o “_CGContextAddLineToPoint”,引用自: -[TestDraw drawRect:] 在 TestDraw.o ld: 未找到符号

所以,CGContext“方法”似乎无法识别。

我需要在内部使用 viewController 和一个单独的视图,因为我将 Unity 用于主应用程序,而这只是更大应用程序的一小部分。但是,由于性能原因(它是一个绘图应用程序),我需要使用本机代码。

好的,我希望有人能够帮助我。非常感谢!

【问题讨论】:

【参考方案1】:

听起来您需要将 CoreGraphics 框架添加到您的项目中。

如何添加它取决于您使用的 Xcode 版本(3 或 4)。

Xcode 4

    单击文件列表中的项目 单击应用程序的目标 点击屏幕中间顶部附近的“构建阶段”标签 打开“Link Binary With Libraries”选项。 点击 + 图标 选择 CoreGraphics.framework 并点击“添加”

这里有相关问题:How to "add existing frameworks" in Xcode 4?

将框架添加到项目后,您需要将以下内容添加到 TestDraw.m 文件的顶部

#import <CoreGraphics/CoreGraphics.h>

【讨论】:

非常感谢。你是对的,我错过了 CoreGraphics 框架。之后没有错误:) 我还没有使用 Xcode 4,但添加起来很简单。

以上是关于在视图控制器中的视图内绘制一条线的主要内容,如果未能解决你的问题,请参考以下文章

弹出拇指视图控制器后,视图控制器正在我的导航栏下绘制

从导航控制器内的表视图控制器中的按钮展开

管理容器视图控制器内同级视图控制器之间的交互

从另一个视图控制器中的类中快速绘制形状(以编程方式)

从控制器内渲染另一个控制器视图(不是部分视图)

在视图内创建导航控制器