选择行时,禁用uitableviewcell中的突出显示按钮

时间:2015-08-03 16:32:29

标签: ios objective-c uitableview cocoa-touch

我有自定义的UITableViewCell和两个按钮。当我选择行时,按钮的背景会改变为与所选行的背景颜色相同的颜色,按钮的边框会消失。

如何在选择行时禁用按钮的更改边框/背景颜色?

感谢您的回复

2 个答案:

答案 0 :(得分:1)

我使用清晰的背景视图为我的单元格和禁用行的选择颜色实现了这一点,但我需要这样。不知道它是否适合您的需要,但您可以试试这个:

UIView *selectedView = [[UIView alloc] initWithFrame:cell.bounds];
selectedView.backgroundColor = [UIColor clearColor];
cell.selectedBackgroundView = selectedView;
cell.selectionStyle = UITableViewCellSelectionStyleNone;

希望这有帮助。

也可以结帐这个帖子:Why do all backgrounds disappear on UITableViewCell select?

答案 1 :(得分:1)

1)创建一个UIView并指定所需的背景颜色。 2)将UIView渲染为UIImage 3)将按钮的backgroundImage设置为所需的状态。

UIView *colorView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
colorView.backgroundColor = color;

UIGraphicsBeginImageContext(colorView.bounds.size);
[colorView.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage *colorImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

[button setBackgroundImage:colorImage forState: UIControlStateHighlighted];