我想在 Mint 应用程序中创建一个自定义单元格,它的功能几乎相同。如何使用收入和支出数据绘制两个条形图?
谢谢,
我做到了这一点:
-(void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
UIColor * earningStartColor = [UIColor colorWithRed:15/255.0f green:227/255.0f blue:0/255.0f alpha:1.0f];
UIColor * earningEndColor = [UIColor colorWithRed:15/255.0f green:188/255.0f blue:0/255.0f alpha:1.0f];
CGRect earningRect = CGRectMake(5, 32, 60, 13);
UIBezierPath *pathE = [UIBezierPath bezierPathWithRoundedRect:earningRect
cornerRadius:3.0];
[pathE addClip];
drawGlossAndGradient(context, earningRect, earningStartColor.CGColor, earningEndColor.CGColor);
UIColor * spentStartColor = [UIColor colorWithRed:255/255.0f green:88/255.0f blue:67/255.0f alpha:1.0f];
UIColor * spentEndColor = [UIColor colorWithRed:255/255.0f green:52/255.0f blue:49/255.0f alpha:1.0f];
CGRect spentRect = CGRectMake(5, 52, 25, 13);
UIBezierPath *pathS = [UIBezierPath bezierPathWithRoundedRect:spentRect
cornerRadius:5.0];
[pathS addClip];
drawGlossAndGradient(context, spentRect, spentStartColor.CGColor, spentEndColor.CGColor);
}
但是,在 addClip 之后,绘图停止,因此只显示一个条形图。如果我将 addClip 包裹在 CGContextSaveGState 和 CGContextRestoreGState 周围,则只有第二个条形角是圆角的。
我还尝试子类化视图并在视图上绘制,然后将其作为子视图添加到我的 tableviewcell 并使用cornerRadius,但绘图实际上位于视图后面,因此它显示为圆形视图(带有背景),后面有矩形栏. 我认为这应该比现在更容易。