jeh*_*jeh 7 uitableview ios uicollectionviewcell swift
我想在突出显示/选择时对自定义表格视图单元格应用一些样式更改,以便覆盖isHighlighted并isSelected实现这一点。它适用于我的自定义集合视图单元格,但不适用于我点击自定义表格视图单元格。
我为表格视图和集合视图设置了完全相同的场景,并在自定义单元格上实现了以下内容:
override var isHighlighted: Bool {
didSet {
//called when I tap for CustomCollectionViewCell not for CustomTableViewCell
}
}
override var isSelected: Bool {
didSet {
//called when I tap for CustomCollectionViewCell not for CustomTableViewCell
}
}
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么?为什么在点击表视图单元格时没有调用它?无论自定义单元格的内容如何,我尝试使用的任何表格视图都会发生这种情况。
Max*_*tov 16
另一个答案对我不起作用。我认为原因是UITableViewCell.isSelected当包含UITableView句柄选择时从未调用 setter ,func setSelected(_ selected: Bool, animated: Bool)而是通过该状态传递。这意味着在您的UITableViewCell子类中覆盖此函数而不是 setter 可以工作:
override func setSelected(_ selected: Bool, animated: Bool) {
// implementation that was meant to be in `isSelected` `didSet`
}
Run Code Online (Sandbox Code Playgroud)
小智 0
通过这种方式覆盖这些属性,您将不再使用它们的默认实现。
尝试将信息转发至super:
override var isHighlighted: Bool {
get {
return super.isHighlighted
}
set {
//do something
super.isHighlighted = newValue
}
override var isSelected: Bool {
get {
return super.isSelected
}
set {
//do something
super.isSelected = newValue
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7120 次 |
| 最近记录: |