我的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)];
然后,每次用户更改要显示的数据时,可以调用这一行。