Изменение цвета заголовков раздела UITableView

Хорошо, я знаю, что это спросили ранее, поэтому простите мне за выяснение снова. Просто кажется, что должен быть более легкий способ сделать это.

Существует ли 'простой' способ изменить цвет фона заголовка раздела UITableView? Я знаю, что могу использовать метод делегата 'viewForHeaderInSection', чтобы вручить UITableView пользовательский UIView для использования для заголовков раздела, но все, что я действительно хочу сделать, установлено 'tintColor'. Существует tintColor свойство на панели поиска, почему не для заголовков раздела.

Если я использую viewForHeaderInSection для создания моего собственного UIView, я должен создать мой владеть маркой также. Я должен разработать и расположить свою маркировку для взгляда точно так же, как остальная часть стандарта Apple. Я должен разработать и измерить 'фон' для сходства с остальной частью стандарта Apple.

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

Если я должен сделать это твердый путь, у кого-то есть вся информация о форматировании, которая соответствует стандарту Apple? - панель 'полупрозрачна' - панель имеет некоторую штриховку на вершине и нижней части - маркировка имеет определенный размер, положение, штриховки, и т.д.

Спасибо. И еще раз, жаль о том, что задал этот вопрос снова.

19
задан toofah 20 July 2010 в 22:23
поделиться

1 ответ

Это то, над чем я довольно долго боролся сам, только чтобы обнаружить, что нет способа просто изменить tintColor заголовка раздела. Решение, которое я придумал, заключалось в том, чтобы сделать скриншот фона заголовка раздела, изменить его оттенок в Photoshop, а затем использовать его в качестве фона заголовка раздела.Тогда это просто случай выкладки этикетки.

Как вы сказали, нужно использовать метод делегата viewForHeaderInSection.

Вот то, что я обнаружил, работает и похоже на стандартное изображение Apple:

UIView *customView = [[[UIView alloc] initWithFrame:CGRectMake(10.0, 0.0, 320.0, 22.0)] autorelease];
customView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"headerbackground.png"]];;

UILabel *headerLabel = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
headerLabel.backgroundColor = [UIColor clearColor];
headerLabel.opaque = NO;
headerLabel.textColor = [UIColor whiteColor];
headerLabel.font = [UIFont boldSystemFontOfSize:18];
headerLabel.shadowOffset = CGSizeMake(0.0f, 1.0f);
headerLabel.shadowColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.5];
headerLabel.frame = CGRectMake(11,-11, 320.0, 44.0);
headerLabel.textAlignment = UITextAlignmentLeft;
headerLabel.text = @"Header Label";
[customView addSubview:headerLabel];
return customView;

Здесь «headerbackground.png» — это изображение размером 1 на 22 пикселя (вдвое больше, чем для iPhone 4), которое будет повторяться по всей длине заголовок.

Надеюсь, это поможет!

12
ответ дан 30 November 2019 в 02:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: