Mam tableview
, gdzie czasami może nie być żadnych wyników do wyświetlenia, więc chciałbym umieścić coś, co mówi „brak wyników”, jeśli nie ma żadnych wyników (etykieta lub jedna komórka widoku tabeli?).
Czy jest na to najłatwiejszy sposób?
Spróbowałbym z label
tyłu, a tableview
następnie ukrył jeden z dwóch w oparciu o wyniki, ale ponieważ pracuję z TableViewController
a nie normalnym, ViewController
nie jestem pewien, jak to jest inteligentne lub wykonalne.
Używam również Parse
i podklasy jako PFQueryTableViewController
:
@interface TableViewController : PFQueryTableViewController
Mogę podać dodatkowe informacje, po prostu daj mi znać!
TableViewController
Scena w Storyboard:
EDYCJA: Per Midhun MP, oto kod, którego używam
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
NSInteger numOfSections = 0;
if ([self.stringArray count] > 0)
{
self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
numOfSections = 1;
//yourTableView.backgroundView = nil;
self.tableView.backgroundView = nil;
}
else
{
UILabel *noDataLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.tableView.bounds.size.width, self.tableView.bounds.size.height)];
noDataLabel.text = @"No data available";
noDataLabel.textColor = [UIColor blackColor];
noDataLabel.textAlignment = NSTextAlignmentCenter;
//yourTableView.backgroundView = noDataLabel;
//yourTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
self.tableView.backgroundView = noDataLabel;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}
return numOfSections;
}
A oto widok, który otrzymuję, wciąż ma linie separatora. Mam wrażenie, że to mała zmiana, ale nie jestem pewien, dlaczego pojawiają się linie separatora?
numberOfSections
powinien zwrócić liczbę i to wszystko. To samo dotyczy numberOfRowsInSection
. Można je wywoływać wielokrotnie w dowolnym momencie. Nigdy nie aktualizuj widoków, nie aktualizuj danych ani nie rób niczego poza zwracaniem liczby. Logika aktualizowania widoków nigdy nie może znajdować się w tych metodach.