0

我已经四处寻找如何做到这一点,但除了创建自己的表格视图单元格的基础知识之外,我不知道如何做到这一点。我试图做的事情很难描述,所以我制作了这张图片来尝试解释:

图片

所以这个程序基本上做的是它播放歌曲,可能同时,在等待之后。这整个等待+歌曲在我的程序中被称为提示。每个提示都有自己的表格视图单元格,它显示了它已经播放了多少。这是我正在努力的部分。我能想到的显示播放量的最佳方式就像在照片中一样,蓝色代表歌曲播放了多少,绿色代表播放了多少等待时间,整个东西代表了多少的提示已经播放。我不知道如何制作一个表格视图单元格,我可以在其中制作一个带有可变数量的绿色/蓝色区域的动画条(b/c 歌曲正在播放)。任何人都可以帮忙吗?

如果其中任何一个不清楚或令人困惑,请发表评论,以便我澄清。

4

1 回答 1

1

您可以将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]以告诉单元格重新绘制进度条。

于 2013-03-21T20:13:40.343 回答