Изменить цвет на галочку в UITableView
может кто-нибудь быть так добр, чтобы показать мне, как изменить цвет на галочке в UITableView?
Я искал, но, кажется, не заставить его работать.
Ура
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]];
Если вы ищете быстрый вариант:
прямо на клетке
например
tableView(_:,cellForRowAtIndexPath:)
cell.tintColor = UIColor.redColor()
использование протокола внешнего вида
UITableViewCell.appearance().tintColor = UIColor.redColor()
Я обнаружил, что ответ 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];
#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;