我想在tableView中突出显示一些单元格。通过突出显示我的意思是将单元格的背景颜色设置为蓝色,例如在复制文本时使用。我用过这个代码检查它是否有效
public func tableView(_ tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
cell.setHighlighted(true, animated: false)
}
我也试过这个
cell.setSelected(true, animated: false)
在这两种情况下,细胞变成灰色而不是蓝色。有解决方案吗?
答案 0 :(得分:4)
更改单元格的 selectionStyle 属性。如果您想将其更改为
UITableViewCellSelectionStyleBlue
,则蓝色。对于替代方法,您可以获得另一个SO answer
例如
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
cell.selectionStyle = .blue
}
UITableViewCell
有三种默认选择样式: -
typedef NS_ENUM(NSInteger, UITableViewCellSelectionStyle) {
UITableViewCellSelectionStyleNone,
UITableViewCellSelectionStyleBlue,
UITableViewCellSelectionStyleGray,
UITableViewCellSelectionStyleDefault NS_ENUM_AVAILABLE_IOS(7_0)
};
或者您可以直接在您的单元格类中设置Selection color
,如
答案 1 :(得分:0)
试试这个
public func tableView(_ tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
cell.selectionStyle = .blue
}