有没有办法减少UITableView的两个部分之间的空间?每个部分之间大约有15个像素。我已经尝试为-tableView:heightForFooterInSection:
和-tableView:heightForHeaderInSection:
返回0,但这不会改变任何内容。
有什么建议吗?
答案 0 :(得分:257)
这有点棘手,但试试这段代码:
- (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。
答案 1 :(得分:136)
对于想要将距离缩小到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)
答案 2 :(得分:33)
您可以在“大小”选项卡下的Interface Builder中实际设置页脚/页眉/单元格高度。默认情况下,页眉/页脚设置为10.0。
答案 3 :(得分:25)
您必须减小节标题/页脚高度。然后部分之间的空间将减少。
试试这段代码
它对我有用: - )
tableView.sectionHeaderHeight = 2.0;
tableView.sectionFooterHeight = 2.0;
答案 4 :(得分:20)
您还可以从故事板中减小部分页脚和页眉的高度。在tableview中 - >尺寸检查员。转到章节高度。
默认情况下,普通样式表设置为22,分组样式表设置为10。您可以通过分别增加/减少页眉和页脚的值来配置值。
答案 5 :(得分:5)
对我来说问题是因为我使用的是分组表视图样式(UITableViewStyleGrouped
)。当我将其更改为普通样式(UITableViewStylePlain
)时,tableView:heightForHeaderInSection:
方法是确定每个节标题大小的唯一方法。
答案 6 :(得分:3)
更新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)
答案 7 :(得分:0)
对我来说,只需使用以下代码解决此问题,
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return section == 0 ? 1 : 20 // 20 is my other sections height
}
第一部分的 1 已经解决了问题。
答案 8 :(得分:0)
也许使用这个,0不能按预期工作
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return .leastNormalMagnitude
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return .leastNormalMagnitude
}
答案 9 :(得分:0)
要更改页眉/页脚空间,必须执行以下方法 :
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
AND
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
}