我有一个包含按钮的自定义表格视图单元格视图。我将按钮初始化为setBackgroundImage
正常状态下的空圆圈。我还setImage
为它的选中状态添加了一个复选标记图像。
checkmarkButton = [[UIButton alloc] initWithFrame:CGRectMake(kLeftMargin, kTopMargin, kButtonSize, kButtonSize)];
[checkmarkButton setBackgroundImage:[UIImage imageNamed:@"empty-circle.png"] forState:UIControlStateNormal];
[checkmarkButton setImage:[UIImage imageNamed:@"checkmark.png"] forState:UIControlStateSelected];
[checkmarkButton addTarget:self action:@selector(checkmarkButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.contentView addSubview:checkmarkButton];
单击按钮时,我将按钮设置为已选中并被告知重绘,以使按钮看起来像一个带有复选标记的圆圈。再次单击它并selected
设置为NO
并告诉单元格重绘,使其成为一个空圆圈。
- (void)checkmarkButtonPressed:(id)sender
{
[checkmarkButton setSelected:!checkmarkButton.selected];
[managedObjectContext save:nil];
}
我的问题是这个按钮存在于自定义表格视图单元格视图中,它似乎以我无法识别的方式控制它的绘制方式。当我长按(在单元格中按下并停留在单元格中而不触摸一段时间)在其按钮设置为选中的单元格上(应该在一个圆圈中显示一个复选标记),复选标记消失,直到我触摸。当我触摸时,单元格的状态是正确的。当我长按单元格时,这是错误的。
那么,当我长按单元格时,如何控制该按钮的绘制方式?