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

Posted

技术标签:

【中文标题】选择行时禁用uitableviewcell中的突出显示按钮【英文标题】:Disable highlight button in uitableviewcell when select row 【发布时间】:2015-08-03 16:32:28 【问题描述】:

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

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

感谢回复

【问题讨论】:

【参考方案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];

【讨论】:

【参考方案2】:

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

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?

【讨论】:

以上是关于选择行时禁用uitableviewcell中的突出显示按钮的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell Xamarin.iOs 中的禁用按钮

ListBox 选择时禁用突出显示 - Windows Phone 7

如何选择并突出显示 UICollectionView,如 UITableViewCell?

突出显示/选择时的 UITableViewCell 背景颜色

从 tableView.allowsMultipleSelectionDuringEditing = YES 选择行时如何防止蓝色突出显示

基于数据库选择在 ajax 日历控件中突出显示/禁用特定日期