UITableView背景颜色不会改变

时间:2011-01-24 18:31:39

标签: iphone cocoa-touch uitableview

在模型UIViewController中,我有以下loadView实现(一切都是以编程方式创建的):

- (void)loadView {

    // Add Basic View
    UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 540, 620)];
    myView.backgroundColor = [UIColor clearColor];
    self.view = myView;
    [myView release];

    // Add NavigationBar

    // Add a BG image

    // Add Table
    UITableView *tbView = [[UITableView alloc] initWithFrame:CGRectMake(30, 80, 480, 250) style:UITableViewStyleGrouped];
    tbView.dataSource = self;
    tbView.delegate = self;
    tbView.scrollEnabled = NO;
    tbView.backgroundColor = [UIColor clearColor];
    [tbView reloadData];

    [self.view addSubview:tbView];
    [tbView release];

    // some more code
}

正如你所看到的,我将backgroundColor设置为clearColor,但是当我编译并运行代码时,我总是看到桌子背后的灰色背景: enter image description here

我不明白我做错了什么(听起来很愚蠢,我知道),我曾经有过相同的代码,而且工作得非常好。我正在使用iOS SDK 4.2.1进行编译

4 个答案:

答案 0 :(得分:43)

您还需要在最近的(自3.2版)iOS版本中将UITableView的backgroundView属性设置为nil。

因此,添加......

tbView.backgroundView = nil;

......应该解决你的问题。

也就是说,如果你想与3.2之前的设备保持兼容,你应该在调用它之前通过instancesRespondToSelector方法检查它是否存在。

答案 1 :(得分:12)

确保您设置了以下3个选项:

tbView.opaque = NO;
tbView.backgroundColor = [UIColor clearColor];
tbView.backgroundView  = nil;

答案 2 :(得分:3)

tbView.backgroundView = nil;

答案 3 :(得分:0)

我尝试从故事板中进行更改。 它在

中运行良好
.container {
  float            : left;
  width            : 26px;
  border           : 1px solid #999;
  display          : flex;
  justify-content  : center;
  margin-right     : 10px;
  padding          : 3px 0;
  --clr            : orange; 
  }
.container:hover {
  --clr  : yellow; 
  }

.c1 .box { --hgt : 100; }
.c2 .box { --hgt : 200; }
.c3 .box { --hgt : 400; }
.c1:hover .box { --hgt : 200; }
.c2:hover .box { --hgt : 400; }
.c3:hover .box { --hgt : 100; }

.box {
  height           : calc(1px * var(--hgt));
  width            : 20px;
  background       : blue;
  position         : relative;
  transition       : height 1s ease-in-out;
  }
.box::before {
  content          : "";
  position         : absolute;
  height           : 100%;
  width            : 99%;
  background-color : var(--clr);
  left             : 0;
  top              : -1px;
  transform        : rotate( calc(-500deg / var(--hgt))); /* adjust 500deg */
  z-index          : -1;
  transform-origin : center center;
  }