当表中没有数据时,UITableviewCell显示消息

时间:2012-06-19 12:36:17

标签: iphone ios uitableview

enter image description here

我正在使用分组tableview来使用数据库开发联系人列表。当列表中没有联系人时,我必须在tableview上显示消息“No Contacts”。我怎么能这样做?

分享您的想法..

先谢谢

3 个答案:

答案 0 :(得分:2)

假设您使用数组存储所有联系人,请使用以下代理

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
   { 
   // You can also modify this condition according to a specific section

   if([YOUR_ARRAY count] == 0)
    {
    return 1;
    }
   else  
   return [YOUR_ARRAY count];
 }

现在将数据添加到以下委托中的表

-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

  // Initialise your cell

 if([YOUR_ARRAY count] > 0){

  // add your array data to cells

  }

  if([YOUR_ARRAY count] == 0){

   // this means no contacts in array and therfore you have only one cell to display NO CONTACTS

   }

   return cell;

}

答案 1 :(得分:0)

对于像这样的情况,我们使用了表头。

如果表中的数据源中包含元素,则表标题清晰且高度为1px。 如果数据源没有元素,则表头视图设置为与表的框架一样大,并包含消息,图像或您可能需要的任何内容。

我们使用的函数(实际上是表视图委托方法)是height for header in sectionview for header in section。我们验证了viewForHeader函数中的数据源

使用表格页脚也可以达到相同的效果

答案 2 :(得分:0)

你可以添加UILabel ande设置标签的文本

label.text = @"No results ";

你做了一个测试

if ([contacts count] == 0)
{
     yourTableview.hidden = YES;
      yourLabel.hidden = NO;
}
else
{
      yourTableview.hidden = NO;
      yourLabel.hidden = YES;
}`