最好的方法:在这里显示"什么都没有"屏幕而不是空的tableView单元格

时间:2013-04-03 07:47:20

标签: ios uitableview

当打开UITableViewController时,我想显示一个屏幕,说“此处没有任何内容”(下面是Dropbox应用程序的截图),而不是没有任何部分/行时的空行。这已在多个应用程序中完成,但我想知道是否有推荐的方法来实现此目的。

Dropbox: empty favorites tab

我可以想象多种方法,包括

  • UIView作为子视图添加到tableViewController的视图
  • 切换到UIViewController并在我自己的
  • 上实现tableView行为
  • UIView设置为backgroundView并隐藏tableView单元格

感谢您的所有想法!

3 个答案:

答案 0 :(得分:1)

我通常这样做的方式是,当没有什么可显示的时候显示一个自定义单元格。

答案 1 :(得分:1)

有一个新的(截至2014年6月)名为DZNEmptyDataSet的库正好处理这种情况。它使用问题中描述的第一种方法(UIView作为子视图)。非常巧妙的实现。

答案 2 :(得分:0)

你必须有一些数据数组,通过它可以在表格视图中定义一些东西。你可以在你的tableview中只用它的委托方法来实现这个。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    if([dataArr count] == 0)
     return 1;
    return [dataArr count];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
      if([dataArr count]==0){
          return self.view.frame.size.height;

      }
  return 44.0;
}

然后

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
     if([dataArr count]==0){
        //Create a cell with the no data image
        tableView.scrollEnabled=NO;
     }else{
         //Create your default cell with data..
         tableView.scrollEnabled=YES;
     }

   return nil;
}

我只是给你一个想法,你选择使用它..