我这里有个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

解决方案 »

  1.   

       [self.view setBackgroundColor:[UIColor clearColor]];   //(1)
        self.tableView.opaque = NO; //(2) (1,2)两行不要也行,背景图片也能显示
    self.view可以说是视图管理器的根视图,这里由于你的tableview遮挡住了它,所以他的背景颜色也就无关紧要了,一般的视图,比如你这里的tableview的透明属性默认就是NO应该,所以这两行没有什么效果。你建一个xib文件就可以看出他们的层次关系,拖一个tableview上去默认是view的子视图。