如何在没有单元格存在的情况下为UITableViewController添加不同的默认背景



我的UITableViewController有一个自定义子类,它工作得很好,列出了用户可以添加、编辑和删除的项。但是,如果没有项目,我希望显示背景图像,而不是只显示空表视图。对我来说,这感觉有点……那里没有单元格很奇怪,我认为在tableView下面添加一些背景会更好。

我实际上已经设置了一个自定义背景,如下:

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"stripeBGGrey"]];
    self.tableView.backgroundColor = [UIColor clearColor];
}

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

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

- (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)];

然后,每次用户更改要显示的数据时,可以调用这一行。

最新更新