我正在寻找在iOS应用中使用的“类似画布”的元素。通过“画布般的”我的意思是我想要一个表面,我可以在其上绘制矩形,线条,文本或图像等基本形状。我不需要3D或其他非常先进的东西 - 矩形和其他图像就足够了,如果需要,文本可以存储在图像中。
我无法想象没有这样的API可用,但他们如何称呼它?
答案 0 :(得分:2)
使用UIKit,用户看到和交互的所有内容基本上都是一个视图。例如,按钮是视图,表视图是视图等。您的应用程序应该已经有一个主视图控制器或一个主窗口,它可以包含零个或多个视图。只要您能够实现drawRect:
方法,就可以在您创建的任何视图上绘制。这是一个实现UIView
子类的示例,您可以使用CoreGraphics绘制它:
@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
方法中可以执行的操作的详情。
答案 1 :(得分:0)
像HTML 5 <canvas>
一样的画布?选中“Core Graphics”(a.k.a。Quartz 2D)。