我有一个问题。在我的应用程序中,我有一个带有列表的TableView,我想删除最后一条记录,以便在TableView上显示“没有更多的数据”。谢谢!
答案 0 :(得分:2)
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
if(self.searchUserResultList count==0))
{
// Display a message when the table is empty
UILabel *messageLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.view.center.x-15, self.view.frame.size.height/2 , self.view.bounds.size.width, self.view.bounds.size.height)];
messageLabel.autoresizingMask=UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
messageLabel.text = @"NO SEARCH RESULTS" ;
messageLabel.textColor = [UIColor whiteColor];
messageLabel.numberOfLines = 0;
messageLabel.textAlignment = NSTextAlignmentCenter;
messageLabel.font = [UIFont fontWithName:@"Palatino-Italic" size:23];
[messageLabel sizeToFit];
messageLabel.tag = 222;
messageLabel.frame = CGRectMake(self.view.center.x-(messageLabel.frame.size.width/2), self.view.frame.size.height/2, messageLabel.frame.size.width, messageLabel.frame.size.height);
[self.view addSubview:messageLabel];
self.tableView.hidden = YES;
return 0;
}
for (UIView* b in self.view.subviews)
{
if(b.tag == 222)
{
[b removeFromSuperview];
}
}
self.tableView.hidden = NO;
return 1;
}
答案 1 :(得分:0)
self.tableView.tableHeaderView=header; //UIView
self.tableView.tableFooterView=footer//UIView
如果已删除,您可以检查最后一条记录的条件并添加标题或页脚
使用此方法,并创建标题或页脚视图以显示不再有数据
答案 2 :(得分:0)
您可以使用页眉或页脚,例如:
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section {
if ([tableView numberOfRowsInSection:section] == 0) {
return @"No more data";
}
return nil;
}
如果您不喜欢这样,请创建一个标签,将其添加到视图中,并根据行数显示/隐藏它。
答案 3 :(得分:0)
您可以使用原始数据阵列计数(如下所示)轻松完成此操作
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if(arrData.count == 0 )
return 1;
return arrData.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
if(arrData.count == 0){
cell.titleLabel.text=@"No Data";
}else{
//Your normal configurations
}
return cell;
}
当您从数据数组中删除所有数据时,它将为空白,当您在上次删除的数据后重新加载tableView时,if将返回一个您可以显示为No Data
行的单元格。
希望这有帮助。
干杯。