Ios 使用UITableViewCell绘制条形图--部分填充颜色的单元格

Ios 使用UITableViewCell绘制条形图--部分填充颜色的单元格,ios,objective-c,uitableview,drawing,Ios,Objective C,Uitableview,Drawing,我试图实现一个表,其中的行部分用颜色填充。基本上,我希望该功能将我的UITableViewCell的背景色填充到一定的百分比 下面是我要创建的UITableViewCells类型的图像。在图像中,您可以看到第一行已完全填充,第二行约为75%,第三行约为20%,依此类推 我对该方法进行了一些修改,但没有成功: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)i

我试图实现一个表,其中的行部分用颜色填充。基本上,我希望该功能将我的
UITableViewCell
的背景色填充到一定的百分比

下面是我要创建的
UITableViewCells
类型的图像。在图像中,您可以看到第一行已完全填充,第二行约为75%,第三行约为20%,依此类推

我对该方法进行了一些修改,但没有成功:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
我试过什么?我尝试将子视图添加到每个单元格的内容视图中。子视图将是一种背景色,而实际单元格将是一种清晰的颜色。以下是我尝试创建填充率为75%的单元格时的代码片段:

cell.backgroundColor = [UIColor clearColor];
int fillWidth = (75/100) * cell.frame.size.width;

CGRect rect = CGRectMake(0, 0, fillWidth, cell.frame.size.height);
UIView * view = [[UIView alloc] initWithFrame:rect];
view.backgroundColor = [UIColor purpleColor];
[cell.contentView addSubview:view];

//...

return cell;
不幸的是,这似乎没有改变单元格的渲染方式


如何为每个表行实现部分着色效果(如上图所示?

我认为您正在除以2个整数,并期望得到一个双精度,基本上答案是0。尝试使用75.0/100.0

还有一件事我忘了提到,cgrect期望的变量类型是CGFloat,您使用的是int,所以您也必须修复它

CGFloat fillWidth = (75.0/100.0) * cell.frame.size.width;

我能想到的最好的方法是将UITableViewCell子类化,并添加UIProgressView和标签,如

@interface UIProgressCell : UITableViewCell {
    UILabel *cellItemName;
    UIProgressView *cellItemProgress;
}

@property (nonatomic, retain) UILabel *cellItemName;
@property (nonatomic, retain) UIProgressView *cellItemProgress;

是否自定义进度条,如背景色和其他

您是否手动(以编程方式)设置“进度”,或希望将其显示为
UIProgressBar
?此外,尝试使用
float
s,而不是
int
s进行此类分割。此外,您需要删除添加的子视图(
[cell.contentView addSubview:view];
)在单元格的
prepareforeuse
方法中,或在序列图像板中的单元格中添加视图并设置该视图的宽度。否则,每次重复使用单元格时(即滚动表格时),它将只是另一个子视图。谢谢!这似乎已经解决了我的问题。现在我只是在查看单元格分隔符时遇到问题,但我会尝试一下。