我正在使用Core Data存储项目名称并将其显示在表格视图中。当表视图为空(数据库中没有数据)时,它是空白的。从用户的角度来看,这并不是很好,所以我希望能够显示一个标签,上面写着“没有项目”。
我该怎么做?我需要:
如果我在正确的轨道上,我真的很感激一些示例代码,以帮助我朝着正确的方向前进。
由于
答案 0 :(得分:3)
我最终使用以下代码检查我的Core Data数据库是否为空。工作出色。这必须放在CoreDataController.m文件中。
NSLog(@"Total number of rows = %d ", totalNumberOfRowsInDatabase);
if (totalNumberOfRowsInDatabase == 0)
{
NSLog(@"Database is empty");
UIImage *image = [UIImage imageNamed:@"emptyTable.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[imageView setFrame:self.tableView.bounds];
[self.tableView setBackgroundView:imageView];
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
[self.tableView setBackgroundColor:[UIColor clearColor]];
}
else
{
[self.tableView setBackgroundView:nil];
self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
[self.tableView setBackgroundColor:[UIColor whiteColor]];
}
return [[[self.fetchedResultsController sections] objectAtIndex:section] numberOfObjects];
答案 1 :(得分:1)
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (section == mySection) return MAX(dataCount, 1);
else // yadda
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// yadda
if ([indexPath section] == mySection) {
if (dataCount == 0) return mySpecialCell;
}
// yadda
}
答案 2 :(得分:1)
有一个方便的lib:UITableView-NXEmptyView
一样简单:
tableView.nxEV_emptyView = yourView
UPD:有一些更灵活的up-to-date solution。