我有一个常规的UITableView,启用了单一选择。我的问题是,如果用户选择多行,则原始行保持选中状态。我也有一个问题,即如果我设置了cell.selectionStyle = UITableViewCellSelectionStyle.Blue
,高光仍然是灰色的我的视图控制器在故事板中定义。
表格视图
表格单元格视图
以下是一些截图:
这是我的代码:
class AreaViewController: UITableViewController
{
override func viewDidLoad()
{
super.viewDidLoad()
self.tableView.backgroundColor = backgroundColour
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCellWithIdentifier("areacell", forIndexPath: indexPath) as! UITableViewCell
cell.selectionStyle = UITableViewCellSelectionStyle.Blue
cell.textLabel?.text = "Cell Contents"
cell.textLabel?.textColor = UIColor.whiteColor()
return cell
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
let cell = tableView.dequeueReusableCellWithIdentifier("areacell", forIndexPath: indexPath) as! UITableViewCell
}
}
我一定错过了一些明显的东西,但我没有看到任何非标准的东西。
答案 0 :(得分:1)
来自UITableViewCell Class Reference
UITableViewCellSelectionStyleBlue单元格具有默认背景 选择时的颜色。
在iOS 7中,选择颜色不再是蓝色。使用 相反,UITableViewCellSelectionStyleDefault。
如果您想要选定单元格的特殊背景颜色,则必须设置单元格backgroundView
:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath) as! UITableViewCell
// Configure the cell...
let backgroundView = UIView()
backgroundView.backgroundColor = UIColor.redColor()
cell.selectedBackgroundView = backgroundView
return cell
}
看起来像这样:
答案 1 :(得分:0)
哎呀!我终于找到了它。好像我正在调用let cell = tableView.dequeueReusableCellWithIdentifier(" areacell",forIndexPath:indexPath)as! didSelectRowAtIndexPath方法中的UITableViewCell。删除它导致一切都重新开始工作。真的很明显。感谢您帮助zisoft让我走上正确的道路。