当您使用 UITableViewStyleGrouped
样式创建 UITableView
时,它会在实际的 tableviewcell 和表格框架的边框之间添加相当多的空间。此空间位于 tableviewcell 的上方、下方、左侧和右侧。
您可以通过以下方式更改 tableviewcell 之间的间距:
[myTableView setSectionHeaderHeight:0];
[myTableView setSectionFooterHeight:25];
然而,即使这样做,框架顶部和第一个 tableviewcell 之间仍然存在这个令人讨厌的空间。此外,框架左侧和 tableviewcell 之间以及框架右侧和 tableviewcell 之间还有大量空间。
-=-=-=-=-=-=-
有没有办法操纵那个空间(调整它的大小)?到目前为止,我唯一的解决方案是使框架的大小大于屏幕,以将程序伪造成在屏幕外具有该“空白空间”,从而将其删除。然而,这显然不是最优的,而且是一个明显的 hack。
最佳答案
由于 UITableView
的 tableHeaderView
属性,所以有空格。当 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/