【问题标题】:UIView background color not changingUIView 背景颜色不变
【发布时间】:2013-11-18 12:23:46
【问题描述】:

我声明了几个在 for 循环中添加到我的 UIScroll 视图中的 UIView,我想知道在循环进行时如何更改每个 UIView 背景的颜色。目前每个 UIVIew 都保持相同的灰色。

这是我的代码的样子:

UIScrollView *htmlContainerScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0, 60.0, self.view.frame.size.width, 293.0)];
    NSInteger viewcount = 4;
    color = 0;
    for(int i = 0; i< viewcount; i++) {
        color = color + 4;
        NSLog(@"%f", color);
        CGFloat y = i * self.view.frame.size.height;
        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, y,self.view.frame.size.width, self .view.frame.size.height)];
        view.backgroundColor = [UIColor colorWithRed:(200.0 + i)/255.0 green:(200.0 + i)/255.0 blue:(200.0 + i)/255.0 alpha:1.0];;
        [htmlContainerScrollView addSubview:view];

    }

【问题讨论】:

  • 你的“self.view.frame.size.height”的高度是多少?

标签: ios uiview uiscrollview background-color uicolor


【解决方案1】:

问题出在这一行:

view.backgroundColor = [UIColor colorWithRed:(200.0 + i)/255.0 green:(200.0 + i)/255.0 blue:(200.0 + i)/255.0 alpha:1.0];;

只要红色、绿色和蓝色具有相同的值,颜色就是灰色。

将不同于 200 的常数值添加到至少红色组件中,您会看到不同的颜色。

【讨论】:

  • Hrmm.. 我刚试过这个,颜色变成了每个创建的视图的最后一个值......
  • 这两个答案的组合奏效了。但是你的方法是实现我的结果最有效的方法。
【解决方案2】:

问题是当您尝试更改颜色时添加“i”而不是“color”,因此您只在 200 中添加了 1、2、3 和 4,这不会引起注意。当您增加颜色时,您也可以尝试使用大于 4 的数字。

【讨论】:

  • 不敢相信我错过了。非常感谢...现在可以使用了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多