Да, у нас было очень много подобную проблему к этому, и мое собственное решение было следующим:
документация Apple, UITableViewHeaderFooterView (ссылка на него находится раздражающе долго, но вы можете легко найти его с вашим любимым поиском движок) говорит, что вы можете получить доступ к textLabel заголовка без необходимости форматировать свой собственный вид с помощью метода viewForHeaderInSection.
textLabel Первичная текстовая метка для представления. (Только для чтения)
@property (неатомические, только для чтения, сохранение) UILabel * TextLabel Обсуждения Доступа к значению этого свойства приводит мнение, чтобы создать ярлык на по умолчанию для отображения деталей строки текста. Если вы управляете содержимым представления самостоятельно, добавив subviews в contentView , вы не должны получить доступ к этому свойству.
Этикетка имеет размер, подходящий для области просмотра контента наилучшим образом. возможно в зависимости от размера строки. Его размер также регулируется в зависимости от наличия текстовой метки детали.
С дополнительным поиском лучшим местом для изменения текста ярлыка был метод willDisplayHeaderView (предлагается в How to implement `viewForHeaderInSection` on iOS7 style?).
Таким образом, решение, которое я придумал довольно просто и просто делает преобразование строки текста ярлыка, после того, как он на самом деле было установлено titleForHeaderInSection:
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
//I have a static list of section titles in SECTION_ARRAY for reference.
//Obviously your own section title code handles things differently to me.
return [SECTION_ARRAY objectAtIndex:section];
}
, а затем просто вызвать метод willDisplayHeaderView изменить как это выглядит:
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
if([view isKindOfClass:[UITableViewHeaderFooterView class]]){
UITableViewHeaderFooterView *tableViewHeaderFooterView = (UITableViewHeaderFooterView *) view;
tableViewHeaderFooterView.textLabel.text = [tableViewHeaderFooterView.textLabel.text capitalizedString];
}
}
вы можете поместить в своем собственном «если» или положение «выключатель» там, как номер раздела также передается методе, так что надеюсь, это позволит вам показывать пользователь/имя клиента в заглавных словах выборочно.
Ben.
__
я перестал положить занятную Sigs в SO «, потому что я был единственный, чтобы найти их забавными.
Super! Я скопировал метод yourDisplayHeaderView в свой код UITableViewController, и он сразу сработал. Tx! – gbroekstg
Это не работает, если вы хотите отобразить целое предложение, поскольку оно заглаживает каждое слово. – moon4e
Raaah, @ moon4e, будьте творческими! Например, 'название = [NSString stringWithFormat: @ "% @% @", [[название substringToIndex: 1] uppercaseString], \t \t \t \t [[название substringFromIndex: 1] lowercaseString]];' – Martin