我的一个表格视图中似乎有一个奇怪的问题,我无法隐藏分隔线(我认为它们是分隔线,除了它们在屏幕上居中而不是在右手上一边)。
我以编程方式创建所有内容,因此这里没有故事板问题。
您可以在下面的每个单元格上方看到微小的1px线。
我使用以下方式加载我的表:
self.tableView.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height)
self.tableView.dataSource = self
self.tableView.delegate = self
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
self.tableView.backgroundColor = UIColor.whiteColor()
self.tableView.scrollEnabled = true
self.tableView.bounces = false
self.tableView.separatorStyle = UITableViewCellSeparatorStyle.None
self.view.addSubview(self.tableView)
我还有一个自定义标头,我使用以下代码实现:
func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
let header:UITableViewHeaderFooterView = view as! UITableViewHeaderFooterView
header.textLabel.textColor = UIColor.whiteColor()
header.textLabel.frame = header.bounds
header.textLabel.textAlignment = NSTextAlignment.Center
view.tintColor = constants.getTintColor()
header.textLabel.textColor = UIColor.whiteColor()
}
我尝试在没有willDisplayHeaderView
的情况下加载表格,问题仍然存在。
我也尝试过添加
tableview.separatorStyle = UITableViewCellSeparatorStyle.None
和
tableView.separatorColor = UIColor.clearColor()
以下方法:
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
tableView.separatorStyle = UITableViewCellSeparatorStyle.None
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
tableView.separatorStyle = UITableViewCellSeparatorStyle.None
return self.boards.count
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
tableView.separatorStyle = UITableViewCellSeparatorStyle.None
return self.boards[section].items.count
}
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String?
{
tableView.separatorStyle = UITableViewCellSeparatorStyle.None
return self.boards[section].name
}
编辑:
单元格是标准的UITableViewCells,单元格的颜色交替,通过以下方式设置:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell:UITableViewCell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell
cell.selectionStyle = UITableViewCellSelectionStyle.None
if indexPath.row % 2 == 0 {
// Even
cell.backgroundColor = constants.UIColorFromRGB(0x1EACE0)
} else {
// Odd
cell.backgroundColor = constants.UIColorFromRGB(0x6FBEE5)
}
cell.textLabel?.textColor = UIColor.whiteColor()
cell.textLabel?.text = self.boards[indexPath.section].items[indexPath.row].title
return cell
}
编辑2:
我现在添加了分隔线,这些不是分隔符,因为您仍然可以在分隔线下方看到它们。
HELP!我糊涂了。我有许多其他的表格视图设置相同(据我所知),它们工作正常。
非常感谢!
答案 0 :(得分:7)
您可以使用seperatorStyle
的表格视图属性,并使用该属性UITableViewCellSeparatorStyleNone
或使用从StoryBoard中删除分隔符
将Seperator的属性设置为无
或者在使用页眉和页脚时更多一点,因此分隔线将为零,但可能有一个额外的分隔符或页眉和页脚,所以请参阅此链接 Eliminate extra separators below UITableView
答案 1 :(得分:4)
由于您没有使用自定义单元格,因此您需要执行以下操作。
创建单元格为let cell : UITableViewCell = UITableViewCell(style:UITableViewCellStyle.Subtitle, reuseIdentifier:"cell")
并删除self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
答案 2 :(得分:1)
这里有一些关于消除可能有用的虚假分隔符的附加信息。发起人所说的解决方案是创建一个新单元的解决方案:
let cell : UITableViewCell = UITableViewCell(style:UITableViewCellStyle.Subtitle, reuseIdentifier:"cell")
但是发起人没有说他是如何将这个用于他的代码,其原始版本使用了dequeueReusableCellWithIdentifier的两个参数版本:
let cell : UITableViewCell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell
我遇到了与虚假分隔符相同的问题,发现使用dequeueReusableCellWithIdentifier的单参数版本也解决了这个问题:
let cell : UITableViewCell = tableView.dequeueReusableCellWithIdentifier("cell") as! UITableViewCell
答案 3 :(得分:0)