如何删除 UITableView 中的单元格分隔符?
Posted
技术标签:
【中文标题】如何删除 UITableView 中的单元格分隔符?【英文标题】:How to remove cell separators in UITableView? 【发布时间】:2016-01-04 23:48:48 【问题描述】:我想删除UITableView
中的单元格分隔符。这是我的模拟器目前的样子:
我在视图控制器的.swift
文件的viewDidLoad:
方法中实现了下面这行代码:
self.tableView.separatorStyle = UITableViewCellSeparatorStyle.None
这似乎不起作用。
如何去除单元格分隔符?
这是我的cellForRowAtIndexPath:
代码:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
let cellIdentifier = "Cell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! RestaurantsTableViewCell
// Configure the cell...
cell.nameLabel.text = restaurants[indexPath.row].name
cell.typeLabel.text = restaurants[indexPath.row].type
cell.mainImageView.image = UIImage(named: restaurants[indexPath.row].image)
return cell
【问题讨论】:
那一行应该足够了,我认为你的行之间可能有一些填充。为您的 tableView 发布一些代码。 @RashwanL 你想看什么代码? 从函数cellForRowAtIndexPath
开始。
@RashwanL 我已经添加了这段代码。
你确定你的图片没有边框吗?
【参考方案1】:
-
检查单元格的布局,尤其是顶部和底部约束。
检查单元格的内容视图。您是否将剪辑的边界设置为true?
以上所有内容都应在代码和 IB 中检查。
【讨论】:
应该有哪些布局约束? 另外,clipsToBounds
在viewDidLoad:
方法中设置为true。
更新了我的答案。也检查内容视图的拉伸。
什么是超级视图?
@AnnabelleSykes 你是什么意思?内容视图的超级视图?它是表格视图单元格。具有该约束的视图的超级视图?只是内容视图中的图像视图。【参考方案2】:
要隐藏分隔线,您应该将每个单元格的分隔插入设置为零。您应该在cellForRowAtIndexPath
中添加这一行:
cell.separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
【讨论】:
这并没有改变任何东西。不过谢谢! 不应将 insets 设置为零,而应将其设置为“右”inset 为 table view 的宽度,即cell.separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: tableView.bounds.width)
【参考方案3】:
我建议给单元格一个随机的背景颜色而不是白色,这样您就可以确保单元格有填充并且它不是图像的一部分。如果它不起作用,您可以尝试使用表格和单元格引用将插图设置为零。查看这个答案以获得更多解释。
Remove SeparatorInset on ios 8 UITableView for XCode 6 iPhone Simulator
【讨论】:
它不是图像的一部分。链接中的代码,你能用 Swift 给我吗?谢谢! 让我试一下代码,我稍后会发布 swift 代码 谢谢!非常感谢!以上是关于如何删除 UITableView 中的单元格分隔符?的主要内容,如果未能解决你的问题,请参考以下文章
iOS swift 删除 UITableView 单元格分隔空间
如何在 UITableView 中的单元格之间添加分隔符单元格/uiview?
UITableView insertRowsAtIndexPaths 删除单元格分隔符