在一个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,但是当我编译和运行代码时,我总是在表格后面看到灰色背景:
我不明白我做错了什么(听起来很愚蠢,我知道),我曾经有过完全相同的代码,它可以完美地工作。 我正在使用iOS SDK 4.2.1进行编译。
loadView
中进行所有这些设置,而应该在viewDidLoad
中进行。在loadView
中,你应该只是创建视图,而不是设置颜色等。在loadView
中将框架设置为CGRectZero
是可以的。你可以在viewDidLoad
中稍后更改它。 - Robotbugs