自定义UITableViewCell

时间:2019-01-22 22:57:44

标签: ios uitableview

当用户在UITableView中选择一行时,我正在实现自定义视觉效果。我已经覆盖了UITableViewCell.setSelected(),但是在子类中对其进行了调用,它在将selectedBackgroundView添加到层次结构之前对内容视图的外观进行了一些调整,例如将opacity设置为false。我不希望内容视图及其子视图为!opaque,所以我认为可以避免在覆盖它时调用super.setSelected,但这会破坏选择/取消选择行为。

  • 是否有一种方法可以避免在不破坏单元格UI的情况下对UITableViewCell.setSelected()进行默认的selection/deselection更改?令我惊讶的是,selecting/deselecting单元的内置UI更改与逻辑/状态跟踪交织在一起,使selection/deselectionsetSelected()

  • 内全部工作
  • 更一般而言,在调用UITableViewCell.setSelected()之类的东西时,是否有任何调试技巧或跟踪可用于查看发生了什么确切的变化(关于视图正在发生的更新),所以我可以模仿而不调用基类方法(我知道这可能会在新版本的iOS中破坏)

谢谢

尼尔

1 个答案:

答案 0 :(得分:1)

您可以尝试使用突出显示方法来代替单元格选择方法。

第1步:使表格视图单元格选择为无

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

步骤2:覆盖单元格设置的突出显示方法以自定义单元格选择

 - (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
    {
          if (highlighted) 
          {
          }
          else
          {
          }
    }