自定义UITableViewCell中的复选框取消选择行选择

时间:2012-09-12 09:11:46

标签: objective-c ios cocoa-touch ios5 uitableview

我有一个按预期工作的自定义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,...
我已经没有想法如何处理这个虚幻的错误。

感谢。

1 个答案:

答案 0 :(得分:0)

您似乎取消选中tableView:didSelectRowAtIndexPath:方法中的复选框。