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 删除选定单元格中所有子视图的背景颜色