Objective c 切断浮子的下端
这更像是一道数学题,但我就是运气不好。基本上,我得到了下面的代码,可以根据颜色数组中的行等效值来更改单元格颜色。这一切都很好,但我希望它,这样我就可以以某种方式切断亮度光谱的底端,这样我就永远不会得到低于0.2的任何结果。如有任何关于如何解决此问题的建议,将不胜感激Objective c 切断浮子的下端,objective-c,ios,floating-point,Objective C,Ios,Floating Point,这更像是一道数学题,但我就是运气不好。基本上,我得到了下面的代码,可以根据颜色数组中的行等效值来更改单元格颜色。这一切都很好,但我希望它,这样我就可以以某种方式切断亮度光谱的底端,这样我就永远不会得到低于0.2的任何结果。如有任何关于如何解决此问题的建议,将不胜感激 -(IBAction)reloadTable { float arrayCount = [masterListArray count]; float increment = (1.0 / arrayCount);
-(IBAction)reloadTable {
float arrayCount = [masterListArray count];
float increment = (1.0 / arrayCount);
NSMutableArray *tempColor = [[NSMutableArray alloc]init];
colors = [[NSMutableArray alloc]init];
for (float brightness = 0.0; brightness < 1.0; brightness += increment) {
UIColor *color = [UIColor colorWithHue:50.0f/255.0f
saturation:1.0
brightness:brightness
alpha:1.0];
[tempColor addObject:color];
NSLog(@"brightness: %f", brightness);
}
colors = [[tempColor reverseObjectEnumerator] allObjects];
[self.tableView reloadData];
}
-(iAction)重新加载表{
浮点数组计数=[masterListArray计数];
浮动增量=(1.0/阵列计数);
NSMutableArray*tempColor=[[NSMutableArray alloc]init];
colors=[[NSMutableArray alloc]init];
对于(浮动亮度=0.0;亮度<1.0;亮度+=增量){
UIColor*color=[UIColor color WITHHUE:50.0f/255.0f
饱和度:1.0
亮度:亮度
α:1.0];
[tempColor addObject:color];
NSLog(@“亮度:%f”,亮度);
}
颜色=[[tempColor reverseObjectEnumerator]allObjects];
[self.tableView重载数据];
}
您可以使用一些额外的变量来确保始终在1.0和底端之间结束。在下面的代码中,我们使用要迭代的单元格数(比以前更好的练习),从亮度1.0开始,到底端结束。也不需要使用颜色
-(IBAction)reloadTable {
float arrayCount = [masterListArray count];
float bottomEnd = 0.2;
float brightnessRange = 1.0 - bottomEnd;
float increment = (brightnessRange / arrayCount);
colors = [NSMutableArray array];
for (int i = 0; i < arrayCount; i++) {
// We start with light and go darker per cell.
float brightness = bottomEnd + (brightnessRange - i * increment);
UIColor *color = [UIColor colorWithHue:50.0f/255.0f
saturation:1.0
brightness:brightness
alpha:1.0];
[colors addObject:color];
NSLog(@"brightness: %f", brightness);
}
[self.tableView reloadData];
}
-(iAction)重新加载表{
浮点数组计数=[masterListArray计数];
浮动底端=0.2;
浮动亮度范围=1.0-底端;
浮点增量=(亮度范围/阵列计数);
颜色=[NSMutableArray];
for(int i=0;i
您的错误或问题是什么?您是否尝试过实施解决方案?你的尝试有什么问题?首先,这不是关于你的问题,而是关于你的代码,你应该使用整数循环而不是浮点循环,舍入可能会弄乱你的逻辑(注意,在这种特定情况下,它必须是好的)。@HericDenis这个循环很好,因为他正在检查亮度<1.0,无论如何检查它。当你检查是否相等时,浮点循环是混乱的。@AnoopVaidya,我知道循环有时会停止,但正如Eric指出的,他可以做得比他想做的更多。谢谢你,这太完美了。我现在更了解一些事情。