节与其标题之间的 UITableView 空间

Posted

技术标签:

【中文标题】节与其标题之间的 UITableView 空间【英文标题】:UITableView space between section and its header 【发布时间】:2014-03-22 17:22:00 【问题描述】:

我正在使用带有 2 个部分的 UITableView,并且我为每个部分标题保留了一个特定宽度,如下所示:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
if (section==0) 
    return 45;

if (section==1) 
    return 20;


return 0;


这里也是viewForHeaderInSection 委托方法

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 

UILabel *lbl = [[UILabel alloc] init];
lbl.textAlignment = NSTextAlignmentCenter;
lbl.font = [UIFont fontWithName:@"AmericanTypewriter-Bold" size:15];
lbl.textColor = [UIColor orangeColor];
lbl.shadowOffset = CGSizeMake(0,1);
lbl.alpha = 0.9;
lbl.textAlignment = NSTextAlignmentLeft;

if(section == 0)
    lbl.text =[LocalizationSystem get:@"Share_Today_times" alter:@""];

if(section == 1)
    lbl.text =[LocalizationSystem get:@"Share_Month_Times" alter:@""];


return lbl;


问题是第一部分和它的标题之间有一个空格,在其他部分中不存在,正如您在下图中看到的第二部分的标题之间没有空格,这显然出现在第一部分(带黑点的区域),有人知道如何解决这些问题吗?提前致谢

【问题讨论】:

您很可能在tableView:viewForHeaderInSection: 方法中遇到了偏移问题 已进行编辑 为什么你的第一个部分有 45 个,你的标签可能在那个部分的顶部。 如果我删除了 45 标签不会出现,它会上升!! 您没有为标签设置框架或约束。你试过用框架初始化它们吗? 【参考方案1】:

您是否尝试将 heightForHeaderInSection 方法的实现更改为

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
    return 20;

原因可能是Share Today Prayers Time 部分的索引为 0,而您将其高度设置为 45 像素,而下一个部分的索引为 1,高度为 20,这显然不是您想要的。

【讨论】:

以上是关于节与其标题之间的 UITableView 空间的主要内容,如果未能解决你的问题,请参考以下文章

QT如何摆脱小部件与其父母之间的空间

Xcode UI 测试 - UITableView 部分

如何最小化 NavigationView 中的 SearchBar 与其上方的 Text 视图之间的空间?

在 UITableView 中的部分之间隐藏部分/空间

iOS:减少两个单元格之间的空间:UITableView

如何在 UITableView 部分之间添加空间?