【问题标题】:iOS viewForHeaderInSection covering other cellsiOS viewForHeaderInSection 覆盖其他单元格
【发布时间】:2015-11-19 06:16:24
【问题描述】:

我正在尝试在我的应用程序中实现标题视图,并使用以下代码创建标题视图:

(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *view = [[[NSBundle mainBundle] loadNibNamed:@"FutureAppointmentsHeaderView" owner:self options:nil] lastObject];

    return view;
}

我还设置了headerView的高度如下:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 70;
}

当页面加载时,标题视图位于正确的位置(参见第一张图片)。但是,当我滚动标题时,会覆盖其他单元格(参见第二张图片。)

我不能做错什么来获得这种行为。非常感谢任何帮助。

【问题讨论】:

    标签: ios objective-c uitableview tableviewcell


    【解决方案1】:

    这听起来不像是错误的行为。这就是标题应该如何操作。以 iPhone 上的“通讯录”应用程序为例——当你滚动时,带有当前字母的标题总是贴在顶部。当您继续滚动时,它会被行中的下一个标题替换。

    您应该为标题添加背景颜色,而不是让它保持透明。我认为一旦你这样做了,一切看起来会更好,更容易理解。

    【讨论】:

    • 噢!在其他应用程序中,我添加了颜色,但我的大脑没有发芽:-\。感谢您的快速回复(和提醒)。
    【解决方案2】:

    看起来你的标题视图是透明的。你试过放背景色吗?

    UIView *view = [[[NSBundle mainBundle] loadNibNamed:@"FutureAppointmentsHeaderView" owner:self options:nil] lastObject];
    view.backgroundColor = [UIColor whiteColor];
    

    【讨论】:

      【解决方案3】:

      尝试更改您的 tableViewType。

      UITableViewStyleGroup 可以让你的 header 在你滚动 tableView 时滚动

      【讨论】:

        【解决方案4】:

        这是 tableview 的默认功能,不是 bug。只需验证 xib 中 headerview 的背景颜色。它似乎有清晰的颜色,将其设置为任何其他颜色,您就会发现差异。代码看起来不错。

        【讨论】:

          【解决方案5】:

          您正在为带有 - tableView:viewForHeaderInSection: 的部分添加标题。部分标题位于表格视图的顶部,并将覆盖其下方的单元格。如果您要在表格视图中添加另一个部分,则每个部分将有两个相同的标题视图,因为您在返回视图时没有检查部分索引。

          如果您想要浮动标题,请使用tableHeaderView。 您可以在viewDidLoad 中将视图分配给UITableView 的属性,或者通过将视图拖动到界面构建器中的表视图。见Table Header Views in StoryBoards

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-01-04
            • 1970-01-01
            • 1970-01-01
            • 2020-09-27
            • 2013-10-19
            • 1970-01-01
            • 2016-01-15
            • 1970-01-01
            相关资源
            最近更新 更多