我在分组样式中有一个UITableView,只有一个部分。但是,当用户滚动得太远时,在表视图的上方和下方会显示一些空白区域。如何删除此空白区域?
答案 0 :(得分:58)
您可以通过更改表视图从contentInset
继承的UIScrollView
属性来执行此操作。
self.tableView.contentInset = UIEdgeInsetsMake(-20, 0, -20, 0);
这将使顶部和底部触及边缘。
答案 1 :(得分:3)
添加此代码:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 0;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return 0;
}
答案 2 :(得分:1)
实际上这个问题回答了我的问题。
答案 3 :(得分:0)
可以在表格的顶部和底部插入UIView(拖放)。将其属性设置为透明,高度为1像素。这是为了去除单元格前面的额外填充。
答案 4 :(得分:0)
您也可以使用此代码删除uitableview的第一个单元格之间的空格。
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 0.002f;// set this...
}
答案 5 :(得分:0)
答案 6 :(得分:0)
这个答案来得很晚,但我希望它能对某人有所帮助。
因为UITableView
的{{1}}属性,所以存在空格。当tableHeaderView
属性为tableHeaderView
时,Apple默认为视图。因此,解决此问题的方法是创建一个高度大于nil
的空视图。设置此设置会覆盖默认视图,从而删除不需要的空间。
这可以通过在情节提要中将视图拖动到0
的顶部,然后将视图的高度设置为tableView
或更大的值来完成。
或者可以通过以下代码以编程方式完成:
Objective-C:
1
快捷键:
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)
属性的更多详细信息,请参见Documentation。
感谢@liushuaikobe使用最小正数进行验证。
答案 7 :(得分:0)
就我而言,问题在于我所施加的约束。我必须更改它们才能在我的情况下显示2行,而表格底部触摸最后一行。
答案 8 :(得分:-4)
使用bounces
的{{1}}属性:
UIScrollView
这会删除[yourTableView setBounces:NO];
顶部和底部的额外填充内容。
实际上,它只会禁用tableview的scrollview滚动浏览内容的边缘。