我有一个按预期工作的自定义UITableViewCell
。
除了一个(重要的)细节。
我的单元格(从Nib加载)包含UIButton
(设置为自定义)。
该按钮就像一个复选框。
大多数时候选中该复选框(=选中)
使用自定义图像:
[self.checkboxButton setImage:[UIImage imageNamed:@"check_off"] forState:UIControlStateNormal];
[self.checkboxButton setImage:[UIImage imageNamed:@"check_on"] forState:UIControlStateSelected];
问题是:
当我选择我的行时,复选框(按钮)会自动取消选择。
我已经完成了我的代码,看看它来自何处
不要在复选框的任何位置设置所选属性
我的自定义tableviewcell代码。
有趣的部分是:
当我将tableviewcell.selectionstyle
设置为UITableViewCellSelectionStyleNone
时,一切都按预期工作(没有自定义背景颜色)。
当我切换到UITableViewCellSelectionStyleGray
时,会自动取消选中该复选框。
更新
当我覆盖setSelected:animated:
时,我的复选框会保持选中状态。
- (void) setSelected:(BOOL)selected animated:(BOOL)animated
{
// checkbox stays checked as expected
NSLog(@"set select with anim");
// when calling super setSelected:animated: checkbox gets unchecked
// [super setSelected:selected animated:animated];
}
我是否缺少某种机制?
例如,我是否必须覆盖setSelected:
,drawRect
,...
我已经没有想法如何处理这个虚幻的错误。
感谢。
答案 0 :(得分:0)
您似乎取消选中tableView:didSelectRowAtIndexPath:
方法中的复选框。