有人可以如此友好地向我展示如何更改UITableView中的复选标记上的颜色吗?
我已搜索但似乎没有让它工作。
干杯
答案 0 :(得分:199)
由于iOS SDK自已接受的答案后发生了变化,我认为我只是用新的答案进行更新。
您实际上可以通过调整UITableViewCell
的{{1}}属性来更改tintColor
中复选标记的颜色
您还可以为所有UITableViewCell设置外观代理,以便所有实例都具有特定的色调颜色,除非另有说明
UITableViewCell.
答案 1 :(得分:42)
Apple没有提供更改复选标记颜色的公开方法,因此您必须使用图片进行更改。
这很简单,只需将单元格的accesoryView属性设置为包含正确颜色复选标记的UIImageView。
它看起来像这样:
UIImageView *checkmark = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"coloredCheckmark.png"]];
cell.accessoryView = checkmark;
[checkmark release];
享受!
答案 2 :(得分:31)
如果您正在寻找Swift版本:
例如在tableView(_:,cellForRowAtIndexPath:)
cell.tintColor = UIColor.redColor()
UITableViewCell.appearance().tintColor = UIColor.redColor()
答案 3 :(得分:29)
以下在iOS 7中为我工作。
[self.tableView setTintColor:[UIColor someColor]];
答案 4 :(得分:14)
此图显示了如何在故事板中执行此操作。色调颜色是复选标记颜色。
答案 5 :(得分:13)
我发现igraczech的回答大多是正确的,但是对于iOS 6或更高版本,您可以设置整个tableview的色调颜色,默认项目将继承。
[self.tableView setTintColor:[UIColor someColor]];
这对我有用,并允许我在复选标记上着色。
答案 6 :(得分:8)
启动iOS 7,您可以设置视图控制器视图的色调颜色,以便将此色调颜色调整到其所有子视图。因此,要将UITableViewCell的复选标记设置为紫色(例如),在viewWillAppear方法中,您需要:
[self.view setTintColor:[UIColor purpleColor]];
答案 7 :(得分:4)
UITableViewCell *cell=..;
cell.tintColor=[UIColor whiteColor];
return cell;
答案 8 :(得分:3)
UIAccessoryTypeCheckmark(右侧)继承其tableview的背景颜色。
self.tableView.backgroundColor = [UIColor clearColor];
答案 9 :(得分:2)
#import "UIImage+Color.h"
UIImage *image = [[UIImage imageNamed:@"ic_check_black_24dp.png"] changeColor:CLR_BUY];
UIImageView *checkmark = [[UIImageView alloc] initWithImage:image];
cell.accessoryView = checkmark;
答案 10 :(得分:2)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
HNCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"HNCustomTableViewCell" forIndexPath:indexPath];
cell.tintColor = [UIColor colorWithRed:0.99 green:0.74 blue:0.10 alpha:1.0];
return cell;
}
它对我有用。
答案 11 :(得分:1)
您不必使用自己的图像,只需在视图中更改它,并使用以下代码加载。
[self.tableView setTintColor:[UIColor colorWithRed:250/255.0 green:223/255.0 blue:6/255.0 alpha:1]]
干杯!
答案 12 :(得分:1)
The above answers are all great. But if you want to do it globally, just do
UITableViewCell.appearance().tintColor = .green
Nice little trick :)
答案 13 :(得分:0)
Swift 3.1,iOS 9 +
if #available(iOS 9.0, *) {
UIImageView.appearance(whenContainedInInstancesOf: [UITableViewCell.self]).tintColor = UIColor.themeTint //add your color here
} else {
// Fallback on earlier versions
}