Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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
Objective c 切断浮子的下端_Objective C_Ios_Floating Point - Fatal编程技术网

Objective c 切断浮子的下端

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

这更像是一道数学题,但我就是运气不好。基本上,我得到了下面的代码,可以根据颜色数组中的行等效值来更改单元格颜色。这一切都很好,但我希望它,这样我就可以以某种方式切断亮度光谱的底端,这样我就永远不会得到低于0.2的任何结果。如有任何关于如何解决此问题的建议,将不胜感激

-(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指出的,他可以做得比他想做的更多。谢谢你,这太完美了。我现在更了解一些事情。