簡體   English   中英

切下浮子的下端

[英]Cutting off the lower end of a float

這更多是一個數學問題,但我沒有運氣。 基本上,我得到了下面的代碼,以根據單元格中的顏色數組中的等效行來更改單元格顏色。 一切都很好,但是我希望它能以某種方式切斷亮度譜的底端,所以我永遠都不會說低於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];
}

您可以使用一些額外的變量來確保始終始終在1.0和最底端之間。 在下面的代碼中,我們使用單元格的數量進行迭代(比您以前做的更好的做法),並從亮度1.0開始,到底部結束。 也無需使用tempColors。

-(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];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM