目标C(三色进度条)二次进度的进度视图

时间:2014-08-07 10:31:27

标签: ios objective-c progress-bar

iOS7中的新进度视图发生了很大变化。 一群人讨厌它,高度不能调整那么琐碎等等。

我遇到的问题是如何在一个进度条上显示主要和次要进度。 例如,如果一个学生在10个问题中回答了8个问题,那么在8个问题中,他回答3个正确,5个错误,如何表明这一切?!

enter image description here

在Android上,例如,这很好地解决了,您只需输入主要和次要进度的数据。但在iOS中,没有这样的选择。

如何在目标C中实现这一目标?

1 个答案:

答案 0 :(得分:2)

他提出的解决方案非常简单,并且能够很好地满足我的需求。

我只需制作三个标签,我需要不同的颜色,并相应地设置它们的宽度。 此外,通过这样做,我能够将进度条高度设置为我想要的。

首先,你制作三个标签。 enter image description here

您需要将它们放在另一个上面,以实现进度条的外观。 我把下面的图片放在下面,显示它们的实际外观。

进度条的灰色部分永远不会改变它的宽度(我们设置为280例如) 如果没有要显示的内容,只需将_redLabel和_greenLabel宽度设置为0,即可获得未设置的进度条。

如果要显示总计

的情况
  • 学生必须回答的10个问题
  • 8他回答
  • 4回答正确(绿色)4回答错误(红色)

    //question size represents width of one question on progress bar. You just divide the width of the entire bar with number of possible questions (max)
    int questionSize = 280 / num_possible_question;
    
    int greenProgressSize = green * questionSize;
    
    CGRect greenProgress = CGRectMake( 20, 95, greenProgressSize, 8 );
    cell.greenLabel.frame = greenProgress;
    
    int redProgressSize = (red+green) * questionSize;
    
    CGRect redProgress = CGRectMake( 20, 95, redProgressSize, 8 );
    cell.redLabel.frame = redProgress;
    
    CGRect grayProgress = CGRectMake( 20, 95, 280, 8 );
    cell.grayLabel.frame = grayProgress;
    

你去吧。你有自己的进度条。您可以根据需要设置宽度和高度,您可以设置所需的颜色,甚至可以添加任意多的标签。 此外,您可以以编程方式创建所有这些标签,无需事先定义它们。