我想到了!基本上,我将以下代码放入我的viewDidLoad
:
// Check if table view has any cells
int sections = [self.tableView numberOfSections];
BOOL hasRows = NO;
for (int i = 0; i < sections; i++)
hasRows = ([self.tableView numberOfRowsInSection:i] > 0) ? YES : NO;
if (sections == 0 || hasRows == NO)
{
self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background-app.png"]];
}
else
{
self.tableView.backgroundColor = [UIColor whiteColor];
self.tableView.backgroundView = nil;
}
我要做的就是把这段代码放在我的viewDidLoad
self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background-app.png"]];
并将代码放在上面,controllerDidChangeContent
如下所示
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
[self.tableView endUpdates];
// Check if table view has any cells
int sections = [self.tableView numberOfSections];
BOOL hasRows = NO;
for (int i = 0; i < sections; i++)
hasRows = ([self.tableView numberOfRowsInSection:i] > 0) ? YES : NO;
if (sections == 0 || hasRows == NO)
{
self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background-app.png"]];
}
else
{
self.tableView.backgroundColor = [UIColor whiteColor];
self.tableView.backgroundView = nil;
}
}
所以当应用程序启动时它会加载背景图片“background-app.png”。然后,一旦它识别出应用程序中有数据,它就会自动变为正常的白色背景。然后当你删除所有数据时,它会回到背景图片“background-app.png”。