Изменить цвет на галочку в UITableView


может кто-нибудь быть так добр, чтобы показать мне, как изменить цвет на галочке в UITableView?

Я искал, но, кажется, не заставить его работать.

Ура

14 51

14 ответов:

Apple не предоставляет общедоступный способ изменить цвет флажка, поэтому вам придется сделать это с изображением.

Это очень просто, просто установите свойство accesoryView ячейки в UIImageView, содержащий галочку правильного цвета.

это будет выглядеть так:

UIImageView *checkmark = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"coloredCheckmark.png"]];
cell.accessoryView = checkmark;
[checkmark release];

наслаждайтесь!

поскольку iOS SDK изменился с момента принятого ответа, я думал, что просто обновлю новый ответ.

вы можете на самом деле изменить цвет галочки в UITableViewCell регулировки tintColor свойства UITableViewCell.

вы также можете установить внешний вид прокси для всех UITableViewCells, так что все экземпляры имеют определенный оттенок цвета, если не указано иначе

[[UITableViewCell appearance] setTintColor:[UIColor redColor]];

следующее работало для меня в iOS 7.

[self.tableView setTintColor:[UIColor someColor]];

Если вы ищете быстрый вариант:

прямо на клетке

например tableView(_:,cellForRowAtIndexPath:)

cell.tintColor = UIColor.redColor()

использование протокола внешнего вида

UITableViewCell.appearance().tintColor = UIColor.redColor()

Это изображение показывает, как это сделать в раскадровки.Цвет оттенка-это цвет галочки.

enter image description here

Я обнаружил, что ответ igraczech в основном правильный, но с iOS 6 или более поздней версии вы можете просто установить цвет оттенка всего tableview, и элементы по умолчанию будут наследовать вниз.

[self.tableView setTintColor:[UIColor someColor]];

это сработало для меня и позволило мне покрасить в галочку.

начиная с iOS 7 Вы можете установить цвет оттенка представления вашего контроллера вида, чтобы этот оттенок colow распространялся на все его дочерние представления. Поэтому, чтобы установить флажок вашего UITableViewCell как фиолетовый цвет (например), в вашем методе viewWillAppear вам нужно:

[self.view setTintColor:[UIColor purpleColor]];

UIAccessoryTypeCheckmark (правая сторона) наследует цвет фона своего tableview.

self.tableView.backgroundColor = [UIColor clearColor];
UITableViewCell *cell=..;
cell.tintColor=[UIColor whiteColor];
return cell;
#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;
- (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;
}

это работает для меня.

Я всегда использовал этот простой способ:

UITableViewCell *cell = ...;
cell.tintColor = [UIColor greenColor];
cell.accessoryType = UITableViewCellAccessoryCheckmark;

вам не нужно использовать свое собственное изображение, вы можете просто изменить его в своем представлении, загрузив следующий код.

[self.tableView setTintColor:[UIColor colorWithRed:250/255.0 green:223/255.0 blue:6/255.0 alpha:1]]

Ура!

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
        }

Result