如果没有单元格,如何向UITableViewController添加不同的默认背景?

时间:2013-05-30 14:41:43

标签: ios objective-c uitableview

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

我确实已经设置了自定义背景,因此:

- (void)viewDidLoad
{
    [super viewDidLoad];

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

是否只是执行获取请求,计算其拥有的项目以及是否没有项目,然后设置不同的BG图像?当用户添加或删除某个项目时,我是否应该将此代码也放在controllerWillChangeContent:controllerDidChangeContent:中?

2 个答案:

答案 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