而不是背景视图改变颜色的默认selectionStyle我试图改变我添加到guideViewCell
的UIView的颜色。但是,当取消选择单元格或按下另一个单元格时,它似乎不会在之前的indicatorImage上应用clearColor。我已经尝试将selectedBackgroundView设置为clearColor但是这将隐藏我的自定义边框。我该怎么做才能解决这个问题?
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("GuideCell", forIndexPath: indexPath) as! GuideViewCell
cell.selectionStyle = UITableViewCellSelectionStyle.None
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var cell = tableView.cellForRowAtIndexPath(indexPath) as! GuideViewCell
cell.indicatorImage.backgroundColor = UIColor.blackColor()
}
func tableView(tableView: UITableView, didDeSelectRowAtIndexPath indexPath: NSIndexPath) {
var cell = tableView.cellForRowAtIndexPath(indexPath) as! GuideViewCell
cell.indicatorImage.backgroundColor = UIColor.clearColor()
}
答案 0 :(得分:1)
我的解决方案只是创建新变量并保存indexPath
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var cell = tableView.cellForRowAtIndexPath(indexPath) as! GuideViewCell
if (lastSelectedCell != nil) {
var oldCell = tableView.cellForRowAtIndexPath(lastSelectedCell!) as! GuideViewCell
oldCell.indicatorImage.backgroundColor = UIColor.clearColor()
}
lastSelectedCell = indexPath
cell.indicatorImage.backgroundColor = UIColor.blackColor()
}
答案 1 :(得分:0)
您需要确保设置了tableView委托,并且tableView allowSelection或allowsMultipleSelection设置为true。