使用页脚的 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 底部不需要的水平线的主要内容,如果未能解决你的问题,请参考以下文章