iphone:在for循环中创建具有不同背景颜色的UIView

时间:2013-05-28 09:53:26

标签: iphone uiview

这可能很简单。我正在尝试使用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];
}

视图已创建,但它们都以相同的颜色结束。这里缺少什么东西?

感谢。

3 个答案:

答案 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];

将线路更改为上面。