Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 具有目标C二级进度的进度视图(三色进度条)_Ios_Objective C_Progress Bar - Fatal编程技术网

Ios 具有目标C二级进度的进度视图(三色进度条)

Ios 具有目标C二级进度的进度视图(三色进度条),ios,objective-c,progress-bar,Ios,Objective C,Progress Bar,iOS7中的新进度视图发生了很大变化。 一群人讨厌它,身高不能调整,琐碎等等 我遇到的问题是如何在一个进度条上显示主要和次要进度。 例如,如果一个学生回答了10个问题中的8个,而在这8个问题中,他回答了3个对,5个错,那么如何证明这一切 例如,在Android上,这个问题得到了很好的解决,您只需输入主要和次要进度的数据。但在iOS中,没有这样的选项 如何在目标C中实现这一点?我提出的解决方案相当简单,并且非常适合我的需要 我会简单地制作三个标签,使用我需要的不同颜色,并相应地设置它们的宽度。

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

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

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


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

我提出的解决方案相当简单,并且非常适合我的需要

我会简单地制作三个标签,使用我需要的不同颜色,并相应地设置它们的宽度。 而且,通过这样做,我可以将进度条的高度设置为我想要的高度

首先,制作三个标签。

您需要将它们一个接一个地放置,以实现进度条外观。 我把这张照片放在下面,展示了它们的实际外观

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

如果您想显示的情况下,共有

  • 学生必须回答的10个问题
  • 他回答说
  • 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;