Подтвердить что ты не робот

Как установить цвет аксессуара UITableViewCell?

Я хотел бы, чтобы значок аксессуаров был белым, аналогично тому, как значки автоматически окрашиваются в белый цвет в черный TabBar, но мне не сразу становится ясно, как это сделать. Кто-нибудь имеет опыт с этим?

4b9b3361

Ответ 2

На самом деле правильный ответ (несмотря на то, что он так поздно) заключается в том, чтобы установить свойство tintColor вашей ячейки в белый объект UIColor, например:

UITableViewCell *cell = [UITableViewCell new]; // or other instantiation...
[cell setTintColor:[UIColor whiteColor]];

Также возможно подклассирование аксессуаров, но вопрос заключается в том, чтобы сделать кнопку сотовой ячейки белой, поэтому это должен быть правильный ответ (по крайней мере, для iOS7).

Примечание. Исправлено имя свойства, также обратите внимание, что он действительно не работает для типа аксессуара индикатора

Ответ 3

Установка цвета оттенка для представления таблицы решает его для меня.

Ответ 4

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

Enjoy

Ответ 5

Swift 3.0

Два способа:

  • Используйте свой собственный UIImageView как accessoryView ячейки tableview.
  • Если вы используете системный аксессуар, например Disclosure Indicator значок стрелки ( > ), вы можете изменить UIImageView tintColor для его достижения. Как ниже:

    cell?.subviews.forEach({
            if let btn = $0 as? UIButton {
                btn.subviews.forEach({
                    if let imageView = $0 as? UIImageView {
                        let image = imageView.image?.withRenderingMode(.alwaysTemplate)
                        imageView.image = image
                        imageView.tintColor = UIColor.red
                    }
                })
            }
        })
    

Ответ 6

Если вы используете пользовательский образ/кнопку для вашего аксессуара, вам нужно изменить цвет оттенка кнопки, как будто

        UIImageView *trash_icon = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ic_delete_record.png"]];
        UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        button.frame = CGRectMake(280, 140, 30, 30);

        //Here is where you change the color of the button.
        button.tintColor = UIColor.whiteColor;

        [button setImage: trash_icon.image forState:UIControlStateNormal];
        cell.accessoryView  = button;

Ответ 7

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    guard let cell = tableView.dequeueReusableCell(withIdentifier: "MyCustomCellIdentifier", for: indexPath) as? MyCustomCell else { return UITableViewCell() }
    cell.tintColor = UIColor.white //Important
    cell.accessoryType = (someCondition) ? .checkmark : .none
    return cell
}

Ответ 8

Самый простой способ сделать это - "создать свой аксессуар из образа самостоятельно" и изменить цвет его с помощью параметров цвета шаблона или просто использовать изображение, имеющее нужный цвет.

Ответ 9

В вашем пользовательском классе ячеек

override func awakeFromNib() {
   super.awakeFromNib()
   tintColor = UIColor.red
}

или

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cellModel = addressCellModels[indexPath.row]
    let cell = tableView.dequeueReusableCell(withIdentifier:cellModel.cellIdentifier, for: indexPath) as! AddressSelectionCell
    cell.tintColor = UIColor.red
    return cell
}