objective-c - 如何去除分组的 UITableView 顶部的空白区域?

标签 objective-c uitableview

当您使用 UITableViewStyleGrouped 样式创建 UITableView 时,它会在实际的 tableviewcell 和表格框架的边框之间添加相当多的空间。此空间位于 tableviewcell 的上方、下方、左侧和右侧。

您可以通过以下方式更改 tableviewcell 之间的间距:

[myTableView setSectionHeaderHeight:0];
[myTableView setSectionFooterHeight:25];

然而,即使这样做,框架顶部和第一个 tableviewcell 之间仍然存在这个令人讨厌的空间。此外,框架左侧和 tableviewcell 之间以及框架右侧和 tableviewcell 之间还有大量空间。

-=-=-=-=-=-=-

有没有办法操纵那个空间(调整它的大小)?到目前为止,我唯一的解决方案是使框架的大小大于屏幕,以将程序伪造成在屏幕外具有该“空白空间”,从而将其删除。然而,这显然不是最优的,而且是一个明显的 hack。

最佳答案

由于 UITableViewtableHeaderView 属性,所以有空格。当 tableHeaderView 属性为 nil 时,Apple 默认一个 View 。所以解决这个问题的方法是创建一个高度大于 0 的空 View 。设置此项会覆盖默认 View ,从而删除不需要的空间。

这可以在 Storyboard 中完成,方法是将 View 拖到 tableView 的顶部,然后将 View 的高度设置为 1 或更大的值。

或者可以使用以下代码以编程方式完成:

Objective-C :

CGRect frame = CGRectZero;
frame.size.height = CGFLOAT_MIN;
[self.tableView setTableHeaderView:[[UIView alloc] initWithFrame:frame]];

swift :

var frame = CGRect.zero
frame.size.height = .leastNormalMagnitude
tableView.tableHeaderView = UIView(frame: frame)

评论

正如其他人所指出的,您可以对页脚使用相同的解决方案。


来源和致谢

参见 Documentation有关 tableHeaderView 属性的更多详细信息。

感谢@liushuaikobe用于验证使用最小正正常数是否有效。

关于objective-c - 如何去除分组的 UITableView 顶部的空白区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9932711/

相关文章:

swift - 在 UITableView 部分标题中锚定 UILabel

ios - 编程 UITableView 的 didSelectRowAtIndexPath 不响应触摸

iphone - 核心数据保存更改撤消

ios - 如何在 Objective-C 中测试字符串是否为空?

ios - 枚举时保存数组

iOS UITableViewCells 行被回收且标签不起作用

ios - UITableView 部分标题未显示

objective-c - 如何从 Xcode4 生成 UML 图

ios - AFNetworking UIAlertView 在后台且没有网络时

ios - 如何在按钮操作中的 TableViewController 中重新加载 tableview?