我的UITableViewController
有一个自定义子类,它工作得很好,列出了可以由用户添加,编辑和删除的项目。但是,如果没有项目,我想显示背景图像而不是仅显示空表视图。对我来说,感觉有点......奇怪的是没有单元格,我认为在tableView下添加某种背景会更好。
我确实已经设置了自定义背景,因此:
- (void)viewDidLoad
{
[super viewDidLoad];
self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"stripeBGGrey"]];
self.tableView.backgroundColor = [UIColor clearColor];
}
是否只是执行获取请求,计算其拥有的项目以及是否没有项目,然后设置不同的BG图像?当用户添加或删除某个项目时,我是否应该将此代码也放在controllerWillChangeContent:
或controllerDidChangeContent:
中?
答案 0 :(得分:1)
例如,您可以在nib文件中的UITableView上添加UIImageView,并根据表中的行数设置其可见性。
类似的东西:
[_myImageView setHidden:([cells count] != 0)];
然后,每当用户更改您想要显示的数据时,您都可以调用此行。
答案 1 :(得分:1)
我通常在我的表视图数据源中询问行数时做出此决定:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
int count = [myTableViewArray count];
tableView.hidden = (count==0);
myImageView.hidden = (count!=0);
return count;
}
使用框架创建myImageView
以匹配tableView
的