Цвет заголовка заголовка UITableView

Я настраиваю UITableView в InAppSettingsKit и хочу изменить цвет заголовка заголовка:

image of tableview

Наклейки Without title и Text Field должны быть белыми. Как это можно сделать?

Спасибо.

Ответ 1

Вы можете попробовать следующую строку кода в методе создания ячейки таблицы -

cell.textLabel.backgroundColor = //Your color;
cell.detailTextLabel.backgroundColor = //Your color;

Ниже вы можете найти более подробное описание, где вы можете найти подробный пример создания пользовательской разделенной таблицы, аналогичной тому, о чем вы упоминали - http://undefinedvalue.com/2009/08/25/changing-background-color-and-section-header-text-color-grouped-style-uitableview

Ответ 2

Это старый вопрос, но я думаю, что ответ должен быть обновлен.

Этот метод не включает определение и создание собственного пользовательского представления. В iOS 6 и выше вы можете легко изменить цвет фона и цвет текста, задав

-(void)tableView:(UITableView *)tableView 
    willDisplayHeaderView:(UIView *)view 
    forSection:(NSInteger)

метод делегата.

Например:

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
    // Background color
    view.tintColor = [UIColor blackColor];

    // Text Color
    UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view;
    [header.textLabel setTextColor:[UIColor whiteColor]];

    // Another way to set the background color
    // Note: does not preserve gradient effect of original header
    // header.contentView.backgroundColor = [UIColor blackColor];
}

Взято из моего поста здесь: https://happyteamlabs.com/blog/ios-how-to-customize-table-view-header-and-footer-colors/

Swift 5.0:

func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    if let header = view as? UITableViewHeaderFooterView {
        header.textLabel?.textColor = .white
    }
}

Ответ 3

Внедрите метод tableView:viewForHeaderInSection: в tableViewController. Это позволит вам предоставить собственное представление для заголовков, которое может включать в себя UILabel с любым форматом, который вы хотите, например.

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UILabel *customLabel = [[UILabel alloc] init];
    customLabel.text = [self tableView:tableView titleForHeaderInSection:section];
    return customLabel;
}

Не забудьте установить рамку ярлыка достаточно высокой, чтобы освободить разделы. Возможно, вы захотите вставить ярлык внутри большего UIView и вернуть это вместо упрощения позиционирования (например, если вы хотите увеличить левое дополнение на метке).

Ответ 4

Мне потребовалось несколько минут, чтобы "перевести" это на Swift, но вот рабочий эквивалент в Swift 1.2 (iOS 8). Будьте уверены и реализуйте UITableViewDelegate в своем классе:

// MARK: - VIEW METHODS
override func viewDidLoad() {
    tableView.delegate = self
}

// MARK: - TABLEVIEW DELEGATE METHODS
override func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    let header = view as! UITableViewHeaderFooterView
    header.textLabel.textColor = UIColor.whiteColor()
}

Ответ 5

Я нашел это: Как изменить цвет текста для заголовков разделов в Grouped TableView в iPhone SDK? Это работает, и я объединил его с небольшим количеством кода из ссылки в ответе @rishi, и это сделало мою жизнь намного проще! Хотя мне пришлось немного подкорректировать координаты надписи, но это сработало как прелесть.

Ответ 6

Версия Swift 4:

func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    guard let headerView = view as? UITableViewHeaderFooterView else { return }
    headerView.textLabel?.textColor = .red // any color
}