2013-03-21 70 views
0

我环顾四周如何做到这一点,但除了创建自己的表视图单元格的基础知识,我无法弄清楚如何。我试图做到这一点很难描述,所以我做了这个形象,试图解释:在表视图单元格显示“加载栏”

image

那么,什么程序通常做的就是它播放的歌曲,可以在同一时间,经过等待。这整个等待+歌曲在我的节目中被称为一个提示。每个提示都有自己的表格视图单元格,显示了它的播放量。这是我正在努力的部分。我能想到的最好的方式就是显示播放了多少,就像在照片中一样,蓝色表示歌曲播放了多少歌曲,绿色表示播放的等待时间有多长,整个事物代表了多少的线索已经发挥。 我不知道如何制作一个表格视图单元格,其中我可以制作一个带有不同数量的绿色/蓝色区域的动画栏(b/c歌曲正在播放)。谁能帮忙?

如果有任何不清楚或混淆,请评论,以便我可以澄清。

+0

我想我不明白“多少等待时间已经播放” – AMayes 2013-03-21 19:19:28

+0

@AMayes因此,Cue占用的总时间是等待时间+歌曲的长度。条形图表示总共使用了多少时间,绿色/蓝色表示该部分时间是等待以及音乐是什么。 – 2013-03-21 20:27:12

+0

您可以尝试使用自定义滑块。他们很容易定制。 – AMayes 2013-03-21 21:48:59

回答

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); 
} 

你明白了吧:用白色填充第一个(默认的背景是黑色的) ,在它上面画蓝条,在蓝条上画绿条。 bluePercentageredPercentage是您必须自行设置的属性。

此外,每次更新进度时,您都必须致电[cell setNeedsDisplay]以告知单元重新绘制进度栏。

+0

好吧,但是传递给drawRect到底是什么?另外,我查阅了Core Graphics库,并且对CGContext的内容有点困惑。 – 2013-03-23 14:39:03

+0

另外,我如何实例化UIView? init方法调用CGRect,那么我应该怎么设置它? – 2013-03-23 14:46:05

+1

'cell.backgroundView = [[YourCellBackgroundViewClass alloc] init];'似乎已经足够了。 – 2013-03-23 15:46:35

相关问题