我有一个自定义UITableViewCell
,它按预期工作。 除了一个(重要的)细节。自定义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
一切正常(没有自定义backgrond颜色)。 当我切换到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
...
我已经江郎才尽了如何处理这个虚幻的错误。
谢谢。
你在选择单元格时调用了'reloadData'吗?如果是的话,那可能是你问题的原因。 – janusbalatbat
我在'[[self tableView] reloadData];'中查找并替换了';在我的tableviewcontroller中,现在有一个集中的方法来重新载入tableview的数据。一旦表的数据就位,这个方法就不会再被调用。所以谢谢你的建议,但它似乎不是罪魁祸首。 – Webdevotion