Настройка стиля заголовков раздела UITableView - программирование
Подтвердить что ты не робот

Настройка стиля заголовков раздела UITableView

Я работаю с iOS 5 и динамически сгенерировал ячейки в таблице (по 2 раздела по 3 строки). Каждый раздел имеет заголовок, который также динамически генерируется с помощью вызова titleForHeaderInSection.

У меня также есть набор изображений в качестве фона для таблицы, который делает текст по умолчанию для заголовков разделов трудным для чтения. Я не нашел способ изменить цвет заголовков разделов (или shadow color, font, text size и т.д.), Либо через интерфейс Storyboard, либо программно! Пожалуйста, помогите!

4b9b3361

Ответ 1

Вы можете изменить размер шрифта/цвет/etc, создав собственное представление для заголовка раздела, используя метод tableView:viewForHeaderInSection:

Здесь приведен пример этой техники

Ответ 2

Это также работает в iOS5+. Это относится ко всем верхним и нижним колонтитулам раздела в табличном представлении и соответствует моим потребностям.

- (void)viewDidLoad
{
    [super viewDidLoad];

    [[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setFont:[UIFont fontWithName:@"MyFont" size:8]];
}

Dan

Ответ 3

Самый простой способ

Если вы не делаете слишком много изменений, например, просто изменяя шрифт или цвета:

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
    UITableViewHeaderFooterView *tableViewHeaderFooterView = (UITableViewHeaderFooterView *)view;
    tableViewHeaderFooterView.textLabel.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:12.0f];
    tableViewHeaderFooterView.textLabel.textColor = [UIColor colorWithRed:0.27f green:0.27f blue:0.27f alpha:1.0f];
    tableViewHeaderFooterView.contentView.backgroundColor = [UIColor colorWithRed:0.87f green:0.87f blue:0.87f alpha:1.0f];
}

Ответ 4

Класс UITableViewHeaderFooterView реализует многоразовое представление, которое можно разместить в верхней или нижней части таблицы. Вы используете верхние и нижние колонтитулы для отображения дополнительной информации для этого раздела.

Доступность: iOS (6.0 и новее)

Пример:

[[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setColor:[UIColor whiteColor]];

Ответ 5

Самый простой способ получить пользовательский заголовок раздела - использовать ячейку!

Очень похож на метод, используемый для

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

Вы можете создать экземпляр прототипа ячейки, который вы предоставляете. Если в вашей ячейке есть розетка для метки, вы можете установить ее перед ее возвратом:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger) section
{
    SessionTableViewCell *cell;
    cell = [tableView dequeueReusableCellWithIdentifier:@"SessionSectionHeader"];
    if (cell == nil) {
        cell = [[SessionTableViewCell alloc]
               initWithStyle:UITableViewCellStyleDefault
             reuseIdentifier:@"SessionSectionHeader"];
    }
    cell.myLabel.text = myTitles[section];
    return cell;
}

Обратите внимание, что @ "SessionSectionHeader" является идентификатором в раскадровке для нашего прототипа ячейки.

НТН!