当用户在UITableView
中选择一行时,我正在实现自定义视觉效果。我已经覆盖了UITableViewCell.setSelected()
,但是在子类中对其进行了调用,它在将selectedBackgroundView
添加到层次结构之前对内容视图的外观进行了一些调整,例如将opacity设置为false。我不希望内容视图及其子视图为!opaque,所以我认为可以避免在覆盖它时调用super.setSelected
,但这会破坏选择/取消选择行为。
是否有一种方法可以避免在不破坏单元格UI
的情况下对UITableViewCell.setSelected()
进行默认的selection/deselection
更改?令我惊讶的是,selecting/deselecting
单元的内置UI更改与逻辑/状态跟踪交织在一起,使selection/deselection
在setSelected()
更一般而言,在调用UITableViewCell.setSelected()
之类的东西时,是否有任何调试技巧或跟踪可用于查看发生了什么确切的变化(关于视图正在发生的更新),所以我可以模仿而不调用基类方法(我知道这可能会在新版本的iOS中破坏)
谢谢
尼尔
答案 0 :(得分:1)
您可以尝试使用突出显示方法来代替单元格选择方法。
第1步:使表格视图单元格选择为无
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
步骤2:覆盖单元格设置的突出显示方法以自定义单元格选择
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
{
if (highlighted)
{
}
else
{
}
}