【问题标题】:Progress view with secondary progress for objective C (three colored progress bar)具有目标 C 次要进度的进度视图(三色进度条)
【发布时间】:2014-08-07 10:31:27
【问题描述】:
iOS7 中的新进度视图发生了很大变化。
一堆人讨厌它,高度不能调整那么微不足道等等。
我遇到的问题是如何在一个进度条上显示主要和次要进度。
例如,如果一个学生在 0f 10 个问题中回答了 8 个问题,并且在这 8 个问题中,他回答了 3 对和 5 个错误,那么如何显示所有这些?!
例如,在 Android 上,这很好地解决了,您只需输入主要和次要进度的数据。但在 iOS 中,没有这样的选项。
如何在目标 C 中实现这一点?
【问题讨论】:
标签:
ios
objective-c
progress-bar
【解决方案1】:
我想出的解决方案相当简单,可以很好地满足我的需求。
我会简单地制作三个标签,我需要不同的颜色,并相应地设置它们的宽度。
此外,通过这样做,我能够将进度条高度设置为我想要的高度。
首先,您制作三个标签。
您将希望将它们一个在另一个之上,以实现该进度条的外观。
我把图片放在下面,展示了它们的实际外观。
进度条的灰色部分永远不会改变它的宽度(例如我们设置为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;
然后就可以了。你有自己的进度条。您可以根据需要设置宽度和高度,可以设置所需的颜色,甚至可以添加任意数量的标签。
此外,您可以通过编程方式制作所有这些标签,无需事先定义它们。