UITableview 单元格高度在空表中不起作用?

Posted

技术标签:

【中文标题】UITableview 单元格高度在空表中不起作用?【英文标题】:UITableview cells height is not working in a empty table? 【发布时间】:2011-08-27 13:05:48 【问题描述】:

我正在使用下面的代码在一个普通的(未分组的)UITableView 上创建一个更大、更干净的外观。它工作正常,除非我有一个空表,然后单元格的高度设置为正常高度。我有标准的 Separatorstyle(灰线),所以如果它是空的,它看起来很糟糕。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

    return 75;

知道如何解决这个问题吗?

编辑:

找到了一个更好的解决方案,如果表格为“空”,我什至不显示行,而是显示指南文本。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
    if ([dataArray count] == 0) 
        [theTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
        [pleaseAddStuffText setHidden:NO];
     else 
        [theTableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];
        [pleaseAddStuffText setHidden:YES];
    
    return [dataArray count];

【问题讨论】:

“空表”是指您的numberOfSectionsInTableView: 和/或tableView:numberOfRowsInSection: 返回0? 那么你的tableView:heightForRowAtIndexPath:永远不应该被调用,你可以设置一个断点来检查它。 好问题,很好的解决方法。 【参考方案1】:

您应该能够通过设置 rowHeight 来始终强制设置行高,即使行数为 0。

self.tableView.rowHeight = 75.0;

您也可以在IB中设置。

heightForRowAtIndexPath 似乎只有在 cellForRowAtIndexPath 中设置单元格时才被调用,而这是 tableview 的属性并且始终存在。

【讨论】:

【参考方案2】:

我在单元格内使用自动布局,所以我需要自动行高。但是当表格为空时,我也希望单元格大小大于标准的 44 点高度。我最终做的是在故事板文件中设置行高和估计为 124 并实现 tableView:heightForRowAtIndexPath: 方法以返回 UITableViewAutomaticDimension

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

    return UITableViewAutomaticDimension;

【讨论】:

【参考方案3】:

空表是什么意思?如果整个表为空,则返回的表的节数为空。这意味着桌子上根本不会显示任何内容。

如果你有一个空的表格行 = 表格单元格,那么你应该确保 cell at indexpath 返回一些你只需要放置空值的地方。然后,您的表格中的其他行之间将有一个空行。

究竟什么是/应该是空的?

【讨论】:

空表 = 没有要显示的数据/单元格。输入 Separatorstyle 之间的高度。

以上是关于UITableview 单元格高度在空表中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

滑动删除 UITableView 单元格动画在 swift 2 中不起作用

更改 tableView 单元格的高度不起作用

设置表格的 td 高度在 Firefox 中不起作用

根据图像问题的 UITableview 单元格高度

缩进在 UITableView ( ios6 ) 中不起作用

UITextField 的清除按钮在 UITableViewCell 中不起作用