UITableView изменить цвет заголовка заголовка - PullRequest
14 голосов
/ 24 января 2012

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

image of tableview

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

Спасибо.

Ответы [ 5 ]

61 голосов
/ 04 октября 2013

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

Этот метод не включает определение и создание собственного пользовательского представления. В 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/

5 голосов
/ 24 января 2012

Реализуйте метод 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 и вернуть его вместо этого, чтобы упростить позиционирование (например, если вы хотите увеличить левое отступление на метке).

3 голосов
/ 30 июня 2015

Мне понадобилось несколько минут, чтобы «перевести» это на 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()
}
1 голос
/ 30 августа 2012

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

0 голосов
/ 24 января 2012

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

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

...