UITableView更改多选复选标记的颜色

Posted

技术标签:

【中文标题】UITableView更改多选复选标记的颜色【英文标题】:UITableView change color of multiple selection checkmarks 【发布时间】:2014-11-18 12:11:49 【问题描述】:

如何更改多选复选标记的色调颜色?

我在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 方法中尝试了[cell setSelectionStyle:UITableViewCellSelectionStyleGray];

但是没有效果。

我是否仅限于UITableViewCellSelectionStyle 文档中定义的颜色,所以蓝色和灰色?

谢谢

【问题讨论】:

你真正想要什么,请详细说明 是您要更改其颜色的复选标记 (UITableViewCellAccessoryCheckmark) 吗?还是单元格选择颜色?在第一种情况下,只需设置单元格的tintColor。对于后一种情况,@BHASKAR 发布了正确的解决方案。 @n00bProgrammer 更改单元格的tintColor 正是我所需要的。但是如何更改选中行的浅蓝色阴影? ios7 以上,您需要设置selectedBackgroundView 来更改单元格选择颜色,正如@BHASKAR 所指出的那样。 这会在选择行时更改颜色(如在导航堆栈中向下移动)但是当您在编辑时检查一行时会出现不同的浅蓝色调,这就是我想要的改变。 【参考方案1】:

请注意,在 iOS 7 中,使用

[cell setSelectionStyle:UITableViewCellSelectionStyleBlue];

不会像预期的那样工作,因为在 iOS 7 中它现在是灰色的,即使你传递了上面的常量。见:

https://developer.apple.com/library/ios/documentation/uikit/reference/UITableViewCell_Class/Reference/Reference.html#//apple_ref/c/tdef/UITableViewCellSelectionStyle

所以用它来改变 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 方法的颜色。

UIView *cellBg = [[UIView alloc] init];
cellBg.backgroundColor = [UIColor colorWithRed:(76.0/255.0) green:(161.0/255.0) blue:(255.0/255.0)     alpha:1.0]; // this RGB value for blue color
cellBg.layer.masksToBounds = YES;
Cell.selectedBackgroundView = cellBg;

【讨论】:

【参考方案2】:

Swift 3.0

只需在 cellForRowAtindexPath 中为复选标记设置单元格色调颜色

cell.tintColor = UIColor.yourColor

并更改选择颜色集

let cellBackgroundColorView = uiview()

cellBackgroundColorView.backgroundColor = UIColor.yourColor

cell.selectedBackgroundView = cellBackgroundColorView

【讨论】:

以上是关于UITableView更改多选复选标记的颜色的主要内容,如果未能解决你的问题,请参考以下文章

在 UITableView 编辑模式中更改复选标记颜色?

EasyUI下拉框实现多选全选复选和模糊查询

JavaScript之实现单选复选菜单以及返回顶部实例

多选模式下的 UITableView 删除选定单元格中所有子视图的背景颜色

CSS/HTML:如何更改复选框输入中复选标记的颜色? [复制]

更改 Android CheckBox 复选标记的默认颜色