答案 0 :(得分:1)
当选择UITableViewCell
时,操作系统会浏览视图层次结构并将所有子视图的backgroundColor
更改为.clearColor()
,以便它可以正确显示背景视图。< / p>
您可以创建一个抵制此更改的自定义UIView
。像这样:
class NeverClearView: UIView {
override var backgroundColor: UIColor? {
get {
return super.backgroundColor
}
set {
if newValue != .clearColor() {
super.backgroundColor = newValue
}
}
}
}
答案 1 :(得分:1)
您可以使用accessibilityLabel
来解决问题
1.首先将橙色视图的backgroundcolor
和tintcolor
设置为您想要的颜色,就像您已经完成的那样。
2.启用橙色视图accessibility
,并设置它的accessibilityLabel
属性。
3.在tableView的委托中,添加以下方法:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let cell = tableView.cellForRowAtIndexPath(indexPath)!
for var view in cell.contentView.subviews{
if view.accessibilityLabel == "colorView"{
view.backgroundColor = view.tintColor;
}
}
}