0

我已经实现了一个自定义 viewForHeaderInSection,如下所示:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    CGRect sectionFrame = CGRectMake(0, 0, tableView.bounds.size.width, 30.0f);
    float xInset = 16.0;
    RTUTableHeaderView
            *headerView =
            [[RTUTableHeaderView alloc] initWithFrame:sectionFrame
                                   andBackgroundColor:[UIColor clearColor]
                                            FontColor:[RTUColorHelper kSettingsTableCellFontColor]
                                          andFontSize:18.f
                                       withLabelFrame:CGRectMake(xInset, 10.f, sectionFrame.size.width - xInset, 20)];
    headerView.label.text = [self tableView:tableView titleForHeaderInSection:section];
    return headerView;

}

这会将标签向下推 10 个点,以便它们更靠近相关部分。在 iOS6 中它看起来不错,但对于 iOS7,第一节标题中的标签比其他标签高出大约 10 个百分点。如果我去掉 10pt 偏移量,第一部分的标签位于 headerView 的顶部,而其他部分在其标题框架中垂直居中。

如果它是一个错误,我可以直接删除第 0 部分的值,但显然不想这样做,并且想检查我是否忘记了其他事情或做错了什么。

节头高度相同,heightForRowAtIndexPath 返回 44.f

4

1 回答 1

1

所以我设法解决这个问题的唯一方法是在第一节标题中添加一个偏移量:

    if(section==0){
        CGRect labelFrame = headerView.label.frame;
        labelFrame.origin.y+=15.f;
        [headerView.label setFrame:labelFrame];
    }

如果有人有更好的想法,我很想听听他们的意见!

于 2013-10-21T13:54:14.163 回答