我有一些数据,比方说一个月的销售数量。我想创建一个离散图表,显示每天销售的商品数量。
我能够做到这一点的唯一方法是创建一些CGRects,然后加载带有这些rects的子视图作为框架,并为其背景着色。因此,图表的列是通过小的彩色视图制作的。
你认为这可能是正确的方法吗?或者您认为有更好的方法吗?
答案 0 :(得分:3)
看看Core Plot:http://code.google.com/p/core-plot/
答案 1 :(得分:1)
好吧,我认为最好的方法是使用CoreGraphics!
这是我写的代码,也许对某人有用......
- (void)drawRect:(CGRect)rect {
// Get the graphics context
CGContextRef ctx = UIGraphicsGetCurrentContext();
int max = arc4random()%5+5;
int unit = floor(155/max);
int h;
for (int i=0; i<24; i++) {
int numero = arc4random()%max;
if (numero != 0) {
h = (max-numero)*unit;
// Draw the bars
CGContextSetRGBFillColor(ctx, 130, 0, 180, 1);
CGContextFillRect(ctx, CGRectMake(4+i*25.6, 9+h, 19, 155-h));
CGContextFillEllipseInRect(ctx, CGRectMake(4+i*25.6, 2+h, 19, 14));
// Draw the number
NSString *newString = [[NSString alloc]initWithFormat:@"%d",numero];
CGContextSetRGBFillColor(ctx, 255, 255, 255, 0.7);
CGPoint newPoint = {8+i*25.6, 2+h};
UIFont *font = [UIFont systemFontOfSize:20];
[newString drawAtPoint:newPoint withFont:font];
}
}
}