有没有办法减少UITableView的两个部分之间的空间?我拥有的每个部分之间大约有15个像素。我确实已经尝试过为返回0 -tableView:heightForFooterInSection:
,-tableView:heightForHeaderInSection:
但这并没有改变任何东西。
有什么建议?
0.0
那样不起作用。对于同一问题,我有一个更彻底的答案:stackoverflow.com/a/22185534/2789144
有没有办法减少UITableView的两个部分之间的空间?我拥有的每个部分之间大约有15个像素。我确实已经尝试过为返回0 -tableView:heightForFooterInSection:
,-tableView:heightForHeaderInSection:
但这并没有改变任何东西。
有什么建议?
0.0
那样不起作用。对于同一问题,我有一个更彻底的答案:stackoverflow.com/a/22185534/2789144
Answers:
这有点棘手,但是请尝试以下代码:
- (CGFloat)tableView:(UITableView*)tableView
heightForHeaderInSection:(NSInteger)section {
if (section == 0) {
return 6.0;
}
return 1.0;
}
- (CGFloat)tableView:(UITableView*)tableView
heightForFooterInSection:(NSInteger)section {
return 5.0;
}
- (UIView*)tableView:(UITableView*)tableView
viewForHeaderInSection:(NSInteger)section {
return [[UIView alloc] initWithFrame:CGRectZero];
}
- (UIView*)tableView:(UITableView*)tableView
viewForFooterInSection:(NSInteger)section {
return [[UIView alloc] initWithFrame:CGRectZero];
}
相应地更改值。要删除空间,我认为0.0将不被接受。最小的理智值似乎是1.0。
0
用作高度-您将获得默认高度。
CGFloat.leastNonzeroMagnitude
对于所有想要将距离缩小到0的人,都必须使用:
tableView.sectionHeaderHeight = 0.0;
tableView.sectionFooterHeight = 0.0;
因为提供UITableViewDelegate只会从大于零的浮点数开始产生效果。
-(CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section
{
return 1.0;
}
-(CGFloat)tableView:(UITableView*)tableView heightForFooterInSection:(NSInteger)section
{
return 1.0;
}
-(UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section
{
return [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
}
-(UIView*)tableView:(UITableView*)tableView viewForFooterInSection:(NSInteger)section
{
return [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
}
(将iOS 4.1与XCode 4.0.2结合使用)
return .leastNormalMagnitude
您实际上可以在Interface Builder的size选项卡下设置页脚/页眉/单元格高度。默认情况下,页眉/页脚设置为10.0。
您还可以从情节提要中减小节的页脚和页眉的高度。在表格视图->大小检查器中。转到截面高度。
默认情况下,普通样式表设置为22,分组样式表设置为10。您可以通过分别增加/减少页眉和页脚的值来配置值。
对我而言,问题是因为我使用的是分组表格视图样式(UITableViewStyleGrouped
)。当我将其更改为简单样式(UITableViewStylePlain
)时,我的tableView:heightForHeaderInSection:
方法是确定每个节标题的大小的唯一方法。
iOS7更新:由于ARC自动发布更新,因此这里的@Martin Stolz代码已编辑。
-(CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section
{
if(section == 0)
return 6;
return 1.0;
}
-(CGFloat)tableView:(UITableView*)tableView heightForFooterInSection:(NSInteger)section
{
return 5.0;
}
-(UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section
{
return [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
}
-(UIView*)tableView:(UITableView*)tableView viewForFooterInSection:(NSInteger)section
{
return [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
}
(使用iOS7,Xcode v5.0)
要更改页眉/页脚空间,必须实现以下方法:
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
和
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat
(使用相应方法更改页脚高度)
以下代码完全删除了节周围的空格:
public func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
return nil
}
public func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return nil
}
public func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return .leastNonzeroMagnitude
}
public func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return .leastNonzeroMagnitude
}
0.0
。但是它显示的是灰色区域,高度(默认)为30点。使用0.0
是不被接受的。您必须使用0.0
例如以上的任何值0.0001
。