Ответ 1
Вы можете изменить размер шрифта/цвет/etc, создав собственное представление для заголовка раздела, используя метод tableView:viewForHeaderInSection:
Я работаю с iOS 5 и динамически сгенерировал ячейки в таблице (по 2 раздела по 3 строки). Каждый раздел имеет заголовок, который также динамически генерируется с помощью вызова titleForHeaderInSection
.
У меня также есть набор изображений в качестве фона для таблицы, который делает текст по умолчанию для заголовков разделов трудным для чтения. Я не нашел способ изменить цвет заголовков разделов (или shadow color
, font
, text size
и т.д.), Либо через интерфейс Storyboard, либо программно! Пожалуйста, помогите!
Вы можете изменить размер шрифта/цвет/etc, создав собственное представление для заголовка раздела, используя метод tableView:viewForHeaderInSection:
Это также работает в iOS5+. Это относится ко всем верхним и нижним колонтитулам раздела в табличном представлении и соответствует моим потребностям.
- (void)viewDidLoad
{
[super viewDidLoad];
[[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setFont:[UIFont fontWithName:@"MyFont" size:8]];
}
Dan
Если вы не делаете слишком много изменений, например, просто изменяя шрифт или цвета:
- (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];
}
Класс UITableViewHeaderFooterView
реализует многоразовое представление, которое можно разместить в верхней или нижней части таблицы. Вы используете верхние и нижние колонтитулы для отображения дополнительной информации для этого раздела.
Доступность: iOS (6.0 и новее)
Пример:
[[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setColor:[UIColor whiteColor]];
Очень похож на метод, используемый для
- (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" является идентификатором в раскадровке для нашего прототипа ячейки.
НТН!