1

打开 aUITableViewController时,我想显示一个屏幕说“这里还没有”(参见下面 Dropbox 应用程序的屏幕截图),而不是在没有部分/行时显示空行。这已经在多个应用程序中完成,但我想知道是否有推荐的方法来实现这一点。

Dropbox:清空收藏夹选项卡

我可以想象有多种方法可以做到这一点,包括

  • 将 aUIView作为 subView 添加到 tableViewController 的视图中
  • 切换到 aUIViewController并自行实现 tableView 行为
  • 设置UIViewbackgroundView并隐藏 tableView 单元格

谢谢你的所有想法!

4

3 回答 3

1

我通常这样做的方式是在没有可显示的内容时显示单个自定义单元格。

于 2013-04-03T07:54:24.127 回答
1

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

于 2014-06-25T12:23:57.513 回答
0

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

- (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;
}

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

于 2013-04-03T07:58:59.877 回答