2011-10-30 124 views
2

我正在尋找一個「畫布般的」元素以用於iOS應用程序。通過「畫布式」我的意思是我想要一個表面,我可以繪製矩形,線條,文本或圖像等基本形狀。我不需要3D或其他非常先進的東西 - 矩形和其他圖像就足夠了,如果需要,文本可以存儲在圖像中。類似畫布的元素

我無法想象沒有這樣的API可用,但他們怎麼稱呼它?

+0

請參閱http://stackoverflow.com/questions/6724800/how-to-use-draw- off-to-draw-in-a-existing-view/6725315#6725315 –

回答

2

使用UIKit,用戶看到並與之交互的所有內容基本上都是一個視圖。例如,一個按鈕是一個視圖,一個表視圖是一個視圖等。你的應用程序應該已經有一個主視圖控制器或一個主窗口,它可以包含零個或多個視圖。只要您有能力實施drawRect:方法,您就可以在任何您創建的視圖上進行繪製。這裏有可可以得出使用CoreGraphics中實現UIView子類的實例:

@interface MyView : UIView 
@end 

@implementation MyView 

- (void)drawRect:(CGRect)dirtyRect { 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSetRGBFillColor(context, 0, 0, 0, 1); 
    // here, you can draw shapes, for example, a circle: 
    CGContextFillEllipseInRect(context, CGContextMake(10, 10, 50, 50)); 
} 

@end 

然後,爲了給MyView一個實例添加到您的應用程序,自定義視圖或者拖動界面生成器,並改變其類MyView,或在您的視圖控制器viewDidLoad做到這一點:

- (void)viewDidLoad { 
    MyView * aView = [[MyView alloc] initWithFrame:self.bounds]; 
    [self.view addSubview:aView]; 
#if __has_feautre(objc_arc) != 1 
    [aView release]; 
#endif 
} 

您可以瞭解更多有關你可以從Quartz 2D Programming GuidedrawRect方法做什麼。