Ios 自定义UITableViewCell的选择行为
当用户在Ios 自定义UITableViewCell的选择行为,ios,uitableview,Ios,Uitableview,当用户在UITableView中选择一行时,我正在实现自定义视觉效果。我已经重写了UITableViewCell.setSelected(),但我在我的子类中调用了它,它在将selectedBackgroundView添加到层次结构之前对内容视图的外观进行了一些调整,比如将不透明度设置为false。我不希望内容视图和它的子视图被删除!不透明,因此我认为在重写它时可以避免调用super.setSelected,但这样会破坏选择/取消选择行为 有没有一种方法可以避免对UITableViewCell
UITableView
中选择一行时,我正在实现自定义视觉效果。我已经重写了UITableViewCell.setSelected()
,但我在我的子类中调用了它,它在将selectedBackgroundView
添加到层次结构之前对内容视图的外观进行了一些调整,比如将不透明度设置为false。我不希望内容视图和它的子视图被删除!不透明,因此我认为在重写它时可以避免调用super.setSelected
,但这样会破坏选择/取消选择行为
- 有没有一种方法可以避免对
进行默认的UITableViewCell.setSelected()
更改,而不中断单元格UI
?令我惊讶的是,选择/取消选择
单元格的内置UI更改与逻辑/状态跟踪如此紧密地交织在一起,使得选择/取消选择
在选择/取消选择
setSelected()
- 更一般地说,在调用诸如
之类的东西时,是否有任何调试提示或跟踪可以用来查看视图的更新情况,以便在不调用基类方法的情况下对其进行模拟(我知道这可能会与新版本的iOS相冲突)UITableViewCell.setSelected()
Neal您可以尝试使用高亮显示方法,而不是使用单元格选择方法 步骤1:将表格视图单元格选择设置为无
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
步骤2:覆盖单元格的设置高亮显示方法以自定义单元格选择
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
{
if (highlighted)
{
}
else
{
}
}
谢谢你提供的信息!这似乎是可行的,但有一些警告。根据我的实验,当选择单元格时,setHighlighted会被调用两次:第一个参数为“true”,第二个参数为“false”。因此,setHighlighted提供的突出显示并不是针对选定单元格的最终UI状态,而是针对“途中”到选定单元格的UI效果。关于选择样式的提示已经为我删除了不需要的不透明度调整-谢谢!我会接受答案的。