如何在没有单元存在时向UITableViewController添加不同的默认背景?

问题描述:

我的UITableViewController有一个自定义子类,它工作的很好,列出了可以被用户添加,编辑和删除的项目。但是,如果没有项目,我想显示一个背景图片,而不是仅显示一个空的表格视图。对我来说,这感觉有点奇怪,没有单元格,我认为在tableView下添加一些背景会更好。如何在没有单元存在时向UITableViewController添加不同的默认背景?

其实我有一个自定义的背景已经成立,因为这样的:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"stripeBGGrey"]]; 
    self.tableView.backgroundColor = [UIColor clearColor]; 
} 

是否执行读取请求时,计算它的项目只是一个情况下,如果没有项目,那么设置不同的BG图像?而当用户添加或删除一个项目,我应该把这个代码也在controllerWillChangeContent:controllerDidChangeContent:

+0

可以'你添加一个自定义的子视图,而不是改变它的背景颜色? –

我通常做出这个决定在我的表视图数据源时,它要求的行数:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 

    int count = [myTableViewArray count]; 

    tableView.hidden = (count==0); 
    myImageView.hidden = (count!=0); 

    return count; 
} 

myImageView已与框架相匹配创造了tableView

您可以在您的nib文件内的UITableView上添加UIImageView,并根据表中的行数设置其可见性。

喜欢的东西:

[_myImageView setHidden:([cells count] != 0)]; 

然后你就可以拨打这条线的每个用户改变你要显示的数据的时间。