我这里有个ItemViewController类(继承自UITableViewController),没有用XIB文件。这里我想给UiTableView设置一个背景,
- (void)viewDidLoad
{ CGRect rect = [[self view] bounds];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:rect];
[imageView setImage:[UIImage imageNamed:@"girl.png" ]];
[self.view setBackgroundColor:[UIColor clearColor]]; //(1)
self.tableView.opaque = NO; //(2) (1,2)两行不要也行,背景图片也能显示
self.tableView.backgroundView = imageView;
}
运行结果是背景图片能正常显示。代码里的(1)(2)两行不写也能显示背景图片,我的问题是:
1. (1)(2)这两行代码是干什么用的?我是在网上看到有人这么写,不知道在什么情况下才用到这两行代码。2. 这个view 和tableView的关系是什么?这个tableView是view的子视图吗??
继承自
UItableViewController ---------------->>UIViewController | |
V V
tableView(属性) <-------什么关系???------->view(属性)UITableViewControlleUItableView背景图片viewtableView
- (void)viewDidLoad
{ CGRect rect = [[self view] bounds];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:rect];
[imageView setImage:[UIImage imageNamed:@"girl.png" ]];
[self.view setBackgroundColor:[UIColor clearColor]]; //(1)
self.tableView.opaque = NO; //(2) (1,2)两行不要也行,背景图片也能显示
self.tableView.backgroundView = imageView;
}
运行结果是背景图片能正常显示。代码里的(1)(2)两行不写也能显示背景图片,我的问题是:
1. (1)(2)这两行代码是干什么用的?我是在网上看到有人这么写,不知道在什么情况下才用到这两行代码。2. 这个view 和tableView的关系是什么?这个tableView是view的子视图吗??
继承自
UItableViewController ---------------->>UIViewController | |
V V
tableView(属性) <-------什么关系???------->view(属性)UITableViewControlleUItableView背景图片viewtableView
self.tableView.opaque = NO; //(2) (1,2)两行不要也行,背景图片也能显示
self.view可以说是视图管理器的根视图,这里由于你的tableview遮挡住了它,所以他的背景颜色也就无关紧要了,一般的视图,比如你这里的tableview的透明属性默认就是NO应该,所以这两行没有什么效果。你建一个xib文件就可以看出他们的层次关系,拖一个tableview上去默认是view的子视图。