gpt4 book ai didi

ios - UITableViewCell 选择样式更改所有 subview 的背景颜色

转载 作者:行者123 更新时间:2023-11-30 12:13:01 26 4
gpt4 key购买 nike

我正在使用 Storyboard 使用 swift 进行编写,并且使用的是 iOS 10。

我有一个由一些 subview 组成的UITableViewCell(它们是UIView)。其中一些 subview 具有背景颜色。

单元格上的选择样式为默认(灰色)。

当我点击单元格时,单元格变成灰色。好的。但是,单元格中每个 subview 的背景颜色也会自动更改以匹配单元格的选择颜色(灰色)。不好。

如何才能最好地防止这种行为?我不希望单元格中 subview 的背景颜色发生变化。

注意: 我不认为通过监听 didSelectRowAtIndexPath 委托(delegate)方法然后设置单元格内容 View 的背景颜色来进行自己的选择是一个非常好的解决方案。也许这是唯一的办法,但我想先看看是否还有其他选择。

更新:只是为了澄清,我不喜欢上述监听委托(delegate)的解决方案的另一个原因是它修复了每个单元格的问题。因此,如果我有其他使用相同 subview 的自定义单元格,我将必须实现相同的修复。我想要在 View 级别而不是单元格级别修复此问题的东西。这样,当我在其他自定义单元格中为不同的表格 View 使用相同的 View 时,我不必担心。

最佳答案

这种方式肯定比监听 didSelectRowAtIndexPath 更好。在您的自定义单元类中使用这些属性:

override var isSelected: Bool {
didSet {
if isSelected {
//play with colors
print("selected")
} else {
//play with colors
print("deselected")
}
}
}

override var isHighlighted: Bool {
didSet {
if isHighlighted {
//play with colors
print("highlighted")
} else {
//play with colors
print("not highlighted")
}
}
}

禁用选择样式:

cell.selectionStyle = UITableViewCellSelectionStyleNone

还有一个棘手的问题:

cell.selectedBackgroundView = UIView()

关于ios - UITableViewCell 选择样式更改所有 subview 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45801758/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com