【发布时间】:2011-09-16 21:08:54
【问题描述】:
我有一个分组样式的 UITableView,只有一个部分。但是,当用户滚动得太远时,表格视图的上方和下方会显示一些空白区域。如何删除此空白?
【问题讨论】:
标签: ipad uitableview ios4
我有一个分组样式的 UITableView,只有一个部分。但是,当用户滚动得太远时,表格视图的上方和下方会显示一些空白区域。如何删除此空白?
【问题讨论】:
标签: ipad uitableview ios4
您可以通过更改表格视图从UIScrollView 继承的contentInset 属性来做到这一点。
self.tableView.contentInset = UIEdgeInsetsMake(-20, 0, -20, 0);
这将使顶部和底部接触边缘。
【讨论】:
其实这个问题回答了我的问题。
【讨论】:
使用UIScrollView 的bounces 属性:
[yourTableView setBounces:NO];
这将删除您的UITableView 顶部和底部的额外填充。
实际上,它只会禁用 tableview 的滚动视图以滚动到内容的边缘。
【讨论】:
添加此代码:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 0;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return 0;
}
【讨论】:
UIView 可以插入到表格的顶部和底部(拖放)。将它们的属性设置为透明和 1 px 的高度。这是为了去除单元格前面的多余填充。
【讨论】:
您还可以使用此代码删除 uitableview 的第一个单元格之间的空间..
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 0.002f;// set this...
}
【讨论】:
这个答案来得很晚,但我希望它对某人有所帮助。
空间存在是因为UITableView 的tableHeaderView 属性。当tableHeaderView 属性为nil 时,Apple 默认为一个视图。所以解决这个问题的方法是创建一个高度大于0 的空视图。设置此项会覆盖默认视图,从而删除不需要的空间。
这可以在 Storyboard 中通过将视图拖动到 tableView 的顶部然后将视图的高度设置为 1 或更大的值来完成。
或者可以使用以下代码以编程方式完成:
目标-C:
CGRect frame = CGRectZero;
frame.size.height = CGFLOAT_MIN;
[self.tableView setTableHeaderView:[[UIView alloc] initWithFrame:frame]];
斯威夫特:
var frame = CGRect.zero
frame.size.height = .leastNormalMagnitude
tableView.tableHeaderView = UIView(frame: frame)
正如其他人所指出的,您可以对页脚使用相同的解决方案。
有关tableHeaderView 属性的更多详细信息,请参阅Documentation。
感谢@liushuaikobe 验证使用最小正正态数是否有效。
【讨论】:
就我而言,问题在于我应用的约束。我必须更改它们才能在我的情况下显示 2 行,而表格底部接触最后一行。
【讨论】: