使用页脚的 UITableView 底部不需要的水平线

Posted

技术标签:

【中文标题】使用页脚的 UITableView 底部不需要的水平线【英文标题】:Unwanted horizontal lines at bottom of UITableView that uses a footer 【发布时间】:2012-03-21 01:37:31 【问题描述】:

我有一个用 UITableViewStyleGrouped 初始化的 UITableView。它包含一个组和一个页脚。我遇到了在页脚前面重复页脚高度的不需要的水平线。如果我将页脚设置为隐藏,线条(和页脚)就会消失。在以下示例中,页脚高度设置为 144 像素。我已经看到设置透明页脚解决问题的这个问题的示例,但是我不能使用这个 hack,因为我需要一个页脚。

这里有两个例子。两者都使用一个节和一个页脚:

页脚很简单:

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

    //Footer
    UIView *footer = [[UITableView alloc] init];
    [footer.layer setBorderColor: [[UIColor clearColor] CGColor]]; //Has no effect
    [footer.layer setBorderWidth:0]; //Has no effect
    //[footer.layer setHidden:YES]; //Hides entire footer and lines
    footer.backgroundColor = [UIColor clearColor];
    UIButton *button = [ComponentFactory makeForgottenPasswordButton];
    [footer addSubview:button];
    return footer;

我已经尝试在表格视图中隐藏分隔符:

self.tableView.separatorColor = [UIColor clearColor]; //Has no effect
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; //Has no effect
self.tableView.backgroundColor = [UIColor clearColor];

部分和行:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

  // Return the number of sections.
  return 1;


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

    // Return the number of rows in the section.
    return 2;

它们来自哪里,我该如何隐藏它们?

【问题讨论】:

有一次我想问一下,为什么要使用tableview来登录? 它在 iPhone 应用程序中很常见。例如 Soundcloud 这将是简单易用的标签和文本字段。 是的,不过我用的是桌子。 我没有使用 xib,如果您阅读问题,您会看到我已经在设置分隔符样式:tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 【参考方案1】:

所以我会检查两件事:

1) 你的 tableView 的背景颜色是什么?

2) 您通过数据源提供了多少个部分?

关于 (1),分组样式 UITableView 的默认背景是您看到的背景。例如,在 iPhone 上加载联系人应用程序并选择一个联系人。您将在上面显示的背景上看到各个部分都被分解了。如果您想要其他颜色,请为 tableView 的 .backgroundColor 属性提供 UIColor 或其他颜色。

更新:看起来你有“单元格分隔符”的原因实际上是因为你没有提供正确的单元格高度,所以你的文本基本上会渗入下一个单元格。尝试将单元格高度设置为 75.0 之类的值,看看是否能解决您的问题。 75 可能太大了,但应该能说明问题。

【讨论】:

谢谢。已更新我的问题以澄清。如果 tableView.backgroundColor 设置为 [UIColor clearColor] 我会丢失条纹但保留不需要的水平线,并且我的代表将返回 1 作为部分数。 谢谢,但没什么区别。 你是在数据源方法中设置高度吗 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath?

以上是关于使用页脚的 UITableView 底部不需要的水平线的主要内容,如果未能解决你的问题,请参考以下文章

我啥时候应该重新计算 UITableView 页脚的大小?

无论如何创建一个带有一个通用页脚的 UITableView 吗?

限制 UItableView 的页眉和页脚的视图宽度

粘性页脚的问题

我如何在底部有页脚的所有屏幕上制作所有相同高度的卡片?

保持底部可变高度的页脚[重复]