[英]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.