UITableView背景颜色不改变

问题描述 投票:0回答:5

在模型 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 进行编译

iphone cocoa-touch uitableview
5个回答
45
投票

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

因此,添加...

tbView.backgroundView = nil;

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

也就是说,如果你想保持与 3.2 之前的设备的兼容性,你应该在调用它之前通过

instancesRespondToSelector
方法检查它是否存在。


14
投票

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

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

3
投票

尝试

tbView.backgroundView = nil;

1
投票

我尝试改变故事板。 它在

中运行良好
tbView.backgroundColor = .white

0
投票

斯威夫特 5.x 我最近遇到了这个问题。 旧的解决方案有所帮助(就我而言,它是 - 仅按此顺序):

    tableView.backgroundView = nil
    tableView.isOpaque = false
    tableView.backgroundColor = .clear
© www.soinside.com 2019 - 2024. All rights reserved.