选择UITableViewCell时,UIButton会被覆盖

Mon*_*ona 2 user-interface uitableview ios

我在UITableViewCell中使用了UIButton,可以选择此按钮,金色星形和未选择的灰色星形,如下图所示.

在此输入图像描述

问题是,当选择单元格时,无论是否选择了按钮,它都会变成灰色(这种灰色不同于未选择的恒星模式的灰色).我一直想弄清楚为什么会这样,但没有运气.

在此输入图像描述

这是细胞的实施,

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];    
UIButton *button = [[UIButton buttonWithType:UIButtonTypeCustom]retain];

//set the background of the cells
cell.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed: @"cellBackground.png"]];
cell.selectedBackgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cellselected2.png"]];

// set the button content
[button setImage:[UIImage imageNamed:@"star.png" ] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"starSelected.png"] forState:UIControlStateSelected];
[button addTarget:self action:@selector(selectedButton:) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(280, 10,  24, 24)];

[cell addSubview:button];

return cell;
}
Run Code Online (Sandbox Code Playgroud)

当我在选择单元格时点击按钮时,按钮也会完全消失!

谢谢,

Mon*_*ona 6

我想到了问题所在.问题是,当选择单元格时,单元格中的UIButton将进入"突出显示状态".如果没有指定用于按钮突出显示按钮状态的图像,它将看起来与我的情况相同.

所以我只是通过添加我想在UIButton突出显示状态下使用的图像来修复它,

[button setImage:[UIImage imageNamed:@"starSelected.png"] forState:UIControlStateHighlighted];
Run Code Online (Sandbox Code Playgroud)

希望这有助于其他人面临同样的问题:)