2011-04-24 121 views
1

所以我一直在尋找一個解決方案,而我只是無法弄清楚什麼是錯誤的。幾天後,不用使用objectice c。所以,這個問題是這樣的:在視圖控制器內的視圖中繪製一條線

所以,我創建了這些: PaintingTestViewController.h PaintingTestViewController.m PaintingTestviewController.xib

我然後創建 TestDraw.h TestDraw.m

雙擊在xib文件上,我創建一個新視圖,選擇它,打開檢查器,並將類設置爲指向TestDraw。

我再打開TestDraw.m和周圍刪除評論 - 虛空的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:符號(S)沒有發現

因此,它似乎CGContext上 「辦法」 無法識別。

我需要在內部使用viewController和一個單獨的視圖,因爲我爲主應用程序使用了Unity,這只是較大應用程序的一小部分。但是,由於性能原因(它是一個繪圖應用程序),我需要使用本機代碼。

好的,我希望有人能幫助我。非常感謝!

回答

2

聽起來像你需要將CoreGraphics框架添加到您的項目。

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

的Xcode 4

  1. 點擊該文件中的項目上市
  2. 單擊目標應用
  3. 點擊屏幕上的「構建階段」選項卡頂部附近,中間
  4. 打開'帶庫的鏈接二進制'選項。
  5. 單擊+圖標
  6. 選擇CoreGraphics。框架,然後單擊「添加」

相關的問題在這裏:How to "add existing frameworks" in Xcode 4?

一旦你添加了框架,你的項目,你需要將以下添加到您的TestDraw.m文件的頂部

#import <CoreGraphics/CoreGraphics.h>

+0

非常感謝。你是對的,我錯過了CoreGraphics框架。之後沒有任何錯誤:)我還沒有使用Xcode 4,但它很容易添加。 – 2011-04-25 07:20:24

相關問題