我正在尋找一個「畫布般的」元素以用於iOS應用程序。通過「畫布式」我的意思是我想要一個表面,我可以繪製矩形,線條,文本或圖像等基本形狀。我不需要3D或其他非常先進的東西 - 矩形和其他圖像就足夠了,如果需要,文本可以存儲在圖像中。類似畫布的元素
我無法想象沒有這樣的API可用,但他們怎麼稱呼它?
我正在尋找一個「畫布般的」元素以用於iOS應用程序。通過「畫布式」我的意思是我想要一個表面,我可以繪製矩形,線條,文本或圖像等基本形狀。我不需要3D或其他非常先進的東西 - 矩形和其他圖像就足夠了,如果需要,文本可以存儲在圖像中。類似畫布的元素
我無法想象沒有這樣的API可用,但他們怎麼稱呼它?
使用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 Guide的drawRect
方法做什麼。
Canvas like the HTML 5 <canvas>
?檢查「Core Graphics」(又名Quartz 2D)。
請參閱http://stackoverflow.com/questions/6724800/how-to-use-draw- off-to-draw-in-a-existing-view/6725315#6725315 –