首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >嵌入在TTTableView中的空TTTableView不显示" Empty“消息

嵌入在TTTableView中的空TTTableView不显示" Empty“消息
EN

Stack Overflow用户
提问于 2012-06-09 15:24:24
回答 1查看 107关注 0票数 0

我将一个TTTableView (_commentsItem)嵌入到另一个TTTableView中,如下所示:

代码语言:javascript
复制
   self.dataSource = [DetailItemDataSource dataSourceWithObjects:
                       @"", 
                       self.imageItem,
                       @"", 
                       findItem, 
                       @"",
                       _descriptionItem,
                       @"",
                       self.shareItem,
                       self.editItem,
                       @"",
                       _commentsItem,
                       @"",
                       _addCommentButtonItem,
                       nil];

当_commentsItem有行的时候,一切都很好。我甚至可以在_commentsItem中向表中添加行,调用..刷新,封闭的表会相应地进行自我调整。

当_commentsItem为空时,就会出现问题。通常,你会期望得到一个覆盖整个屏幕的TTErrorView,但我什么也得不到(实际上,我甚至不希望它覆盖整个屏幕,我只是想让"emptyTitle“显示出来。

我认为问题出在TTTableView的"ShowEmpty“中,它创建了另一个视图来包含TTErrorView,而封闭的表对此一无所知:

代码语言:javascript
复制
- (void)showEmpty:(BOOL)show {
  if (show) {
    NSString* title = [_dataSource titleForEmpty];
    NSString* subtitle = [_dataSource subtitleForEmpty];
    UIImage* image = [_dataSource imageForEmpty];
    if (title.length || subtitle.length || image) {
    TTErrorView* errorView = [[[TTErrorView alloc] initWithTitle:title
                                                      subtitle:subtitle
                                                         image:image] autorelease];
    errorView.backgroundColor = _tableView.backgroundColor;
    self.emptyView = errorView;

  } else {
    self.emptyView = nil;
  }
  _tableView.dataSource = nil;
  [_tableView reloadData];

  } else {
    self.emptyView = nil;
  }

}

我怀疑当showEmpty的TTTableView嵌入到另一个TTTableView中时,它实际上并不打算正确工作,但接下来的问题是如何做到这一点。封闭的表期望_commentsItem是一个TTTableViewItem,所以我不能仅仅将_commentsItem的视图换成一个UILabel。

所以问题是:当您将一个TTTableView嵌入到另一个TTTableView中时,显示嵌入表的"Table Empty“状态的最佳方式是什么?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2012-06-12 00:49:25

以下是我最终解决这个问题的方法:

  • 在创建封闭的TTTableView时,我决定是要在有注释时嵌入一个表视图( TTTableView ),还是想要一个简单的空消息:@“No Comments Yet!";

  • Assigned TTTableView or TTTableTextItem item to TTTableItem *(TTTableView和TTTableTextItem的超类) _commentsItem

  • Built enclosing:

self.dataSource = DetailItemDataSource dataSourceWithObjects:@"",self.imageItem,@"",findItem,@"",_descriptionItem,@"",self.shareItem,self.editItem,@"",_commentsItem,@"",_addCommentButtonItem,nil;

  • 当我收到评论时,我就把TTTableTextItem换成了新的TTTableView:

_commentsPresentItem = [DetailCommentsItem alloc initWithFilter:self.lfm.object_id detailViewController:self];_commentsItem = _commentsPresentItem;//这非常重要。如果没有它,// DetailCommentsItem中的TTTableView将不会正确显示。[_commentsItem commentsViewController视图viewWillAppear:TRUE];//更新我们的数据源以表示我们被换出了行。记住,//源是一个部分的NSArray,每个部分都包含//该部分的行数( NSArray )。unsigned int section = [self commentsItemIndexPath section];unsigned int row = [self commentsItemIndexPath row];[self dataSource items] objectAtIndex:section] removeObjectAtIndex:row];[self dataSource items] objectAtIndex:section] insertObject:_commentsPresentItem atIndex:row];//通知表视图NSArray *x = [NSArray alloc initWithObjects:_commentsItemIndexPath,nil];self.tableView beginUpdates;self.tableView reloadRowsAtIndexPath:x withRowAnimation:UITableViewRowAnimationFade;self.tableView endUpdates;

  • 无论我们是否创建了一个新的表,这个位都被称为-当我们添加一个新的注释时,我们需要它来强制封闭的表正确地更新它的视图。包含它是为了完整性。

[_commentsPresentItem commentsViewController invalidateModel];[_commentsPresentItem commentsViewController refresh];

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10959213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档