1

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

实际上,我确实已经设置了自定义背景,例如:

- (void)viewDidLoad
{
    [super viewDidLoad];

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

是不是只是执行一个fetch请求,统计它有的item,如果没有item,再设置一个不同的BG image?当用户添加或删除一个项目时,我应该把这个代码也放在controllerWillChangeContent:or中controllerDidChangeContent:吗?

4

2 回答 2

1

例如,您可以在 nib 文件中的 UITableView 顶部添加一个 UIImageView,并根据表中的行数设置其可见性。

就像是 :

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

然后您可以在每次用户更改您要显示的数据时调用此行。

于 2013-05-30T14:59:33.980 回答
1

当它询问行数时,我通常在我的表视图数据源中做出这个决定:

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

    int count = [myTableViewArray count];

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

    return count;
}

在哪里myImageView创建了一个框架来匹配tableView's

于 2013-05-30T15:09:27.653 回答