这可能很简单。我正在尝试使用For循环创建多个具有不同颜色的UIView:
float colorGrade = 255.0 / 160;
for (int i = 0; i < 160; i++)
{
float finalColor = colorGrade * i;
if (finalColor > 255)
finalColor = 255;
UIView *viewColor = [[UIView alloc] initWithFrame:CGRectMake(i * 2, 0, 2, viewHeight)];
UIColor *bgColor = [UIColor colorWithRed:finalColor green:0 blue:0 alpha:1];
[viewColor setAlpha:1];
[viewColor setBackgroundColor:bgColor];
[viewColor setTag:i + 1];
[touchPadView addSubview:viewColor];
}
视图已创建,但它们都以相同的颜色结束。这里缺少什么东西?
感谢。
答案 0 :(得分:1)
这样做
UIColor *bgColor = [UIColor colorWithRed:finalColor/255.0 green:0.0 blue:0.0 alpha:1.0];
答案 1 :(得分:1)
尝试使用这个。因为你的UIColor方法需要一个0-1的浮点数,而不是0-255。您需要将所有RGB值除以255.0。
float colorGrade = 255.0 / 160;
for (int i = 0; i < 160; i++)
{
float finalColor = colorGrade * i;
if (finalColor > 255)
finalColor = 255;
UIView *viewColor = [[UIView alloc] initWithFrame:CGRectMake(i * 2, 0, 2, viewHeight)];
UIColor *bgColor = [UIColor colorWithRed:finalColor/255.0f green:0.0f blue:0 alpha:1];
[viewColor setAlpha:1];
[viewColor setBackgroundColor:bgColor];
[viewColor setTag:i + 1];
[touchPadView addSubview:viewColor];
}
答案 2 :(得分:0)
UIColor *bgColor = [UIColor colorWithRed:finalColor/255.0f green:0 blue:0 alpha:1];
将线路更改为上面。