您可以将backgroundView
单元格的属性设置为 UIView 的自定义子类,该子类具有drawRect
类似于以下的方法:
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1.0);
CGContextFillRect(context, rect);
CGRect blueRect = CGRectMake(0, 0, self.bluePercentage/100.0*rect.size.width, rect.size.height);
CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1.0);
CGContextFillRect(context, blueRect);
CGRect greenRect = CGRectMake(0, 0, self.greenPercentage/100.0*rect.size.width, rect.size.height);
CGContextSetRGBFillColor(context, 0.0, 1.0, 0.0, 1.0);
CGContextFillRect(context, greenRect);
}
你明白了:首先填充白色(默认背景为黑色),在其上绘制蓝色条,在蓝色条上绘制绿色条。bluePercentage
并且redPercentage
是您必须自己设置的属性。
此外,每次更新进度时,您都必须调用[cell setNeedsDisplay]
以告诉单元格重新绘制进度条。