UITableView - 出现在单元格之间的一条线
Posted
技术标签:
【中文标题】UITableView - 出现在单元格之间的一条线【英文标题】:UITableView - a line that appears between cells 【发布时间】:2015-09-14 12:56:09 【问题描述】:我有一个 UITableView
存储拍摄的照片 - 每个单元格一张照片。在不久前的 Xcode 更新之后,表格现在在左侧的单元格之间出现一条细白线,如图 1 所示。由于某种原因,图像总是从表格的左侧缩进,并且仅在这部分下方白线现在出现了。
所以我真的有两个问题 - 我怎样才能摆脱白线和/或缩进?分隔符颜色通常与背景相同,但我尝试将 TableView 中的分隔符颜色更改为红色,看看会发生什么,我得到了您在图 2 中看到的内容。(图像缩略图无关紧要)。
我希望保留分隔符(因此照片之间有一条线),但要与它的颜色相匹配,以便与背景颜色相匹配。
【问题讨论】:
检查编辑,我想我已经回答了您的问题 你可以看看这个....***.com/questions/19499366/… 【参考方案1】:通过设置tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
从您的tableview
中移除呼吸器。但根据您现有的代码,您使用了相同颜色的分隔符。我建议使用以下代码:
-(void)viewDidLayoutSubviews
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)])
[self.tableView setSeparatorInset:UIEdgeInsetsZero];
if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)])
[self.tableView setLayoutMargins:UIEdgeInsetsZero];
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
if ([cell respondsToSelector:@selector(setSeparatorInset:)])
[cell setSeparatorInset:UIEdgeInsetsZero];
if ([cell respondsToSelector:@selector(setLayoutMargins:)])
[cell setLayoutMargins:UIEdgeInsetsZero];
【讨论】:
谢谢,但我需要一个分隔符......颜色正确。 你有没有把这段代码放在列表中,这只是用正确的颜色让你的单独的全宽。 atlist 检查代码 impliemtn 然后评论先生 我现在明白了 - 它有效。太感谢了。您可能想要编辑“呼吸器”:)【参考方案2】:我认为这是 tableview 的分隔符。您需要关闭分隔符。这是一张图片如何做到这一点
请检查确认。
编辑
我更改了我的演示文件- 将单元格背景着色为绿色并关闭分隔符。正如你在这里看到的
这是我在运行模拟器后得到的 [注意 - 我实现了委托和数据源方法,我的 numberOfRows
的返回值为 5]
好像没有你想要的空间。
【讨论】:
这将删除该行,但留下一个空格。间距保持不变...【参考方案3】:从 tableView 中删除任何分隔符:
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
然后,从您的 UITableViewCells
中删除 UIImageView
和视图边距之间的任何空格(从示例中设置约束)。
编辑
您可以使用 tableView 属性设置分隔符颜色:
tableView.separatorColor = [UIColor greenColor];
【讨论】:
谢谢,但我需要一个分隔符......颜色正确。 您应该在问题中更清楚地说明。现在我将更新答案。【参考方案4】:首先你需要设置无分隔符
添加自定义分隔符,如 addSubview 首先获取单元格高度...
UILabel *line=[[UILabel alloc]initWithFrame:CGRectMake(0, cellHeight-1, cell.frame.size.width, 1)];
line.backgroundColor=[UIColor redColor];
[cell addSubview:line];
【讨论】:
【参考方案5】:在func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
函数中,添加 cell.backgroundColor = 你想要的颜色。这将使空白区域与您的背景颜色相同。
【讨论】:
以上是关于UITableView - 出现在单元格之间的一条线的主要内容,如果未能解决你的问题,请参考以下文章