Как изменить цвет шрифта заголовков разделов - PullRequest
27 голосов
/ 12 июля 2011

Я хочу отобразить индексированное табличное представление.

По умолчанию заголовки указателей разделов имеют серый цвет.

Как изменить их цвет?

Ответы [ 8 ]

68 голосов
/ 27 сентября 2012

РЕДАКТИРОВАТЬ / СЛЕДУЙТЕ ЗА iOS7 (сентябрь 2013 г.) Прочитайте ответ Грэма Перкса для продолжения работы над iOS7, где он объясняет о sectionIndexTrackingBackgroundColor и sectionIndexBackgroundColor


Выполните (сентябрь 2012 г.) этот вопрос для будущих читателей.

Начиная с iOS 6 теперь можно менять индекс цвета текста и фона. Для этого доступны две функции (см. Документацию по iOS 6).


sectionIndexColor

Цвет, используемый для индексного текста табличного представления.

@property(nonatomic, retain) UIColor *sectionIndexColor

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

Доступность: доступно в iOS 6.0 и более поздних версиях.

Объявлено в: UITableView.h


sectionIndexTrackingBackgroundColor

Цвет, используемый для области фона индекса табличного представления.

@property(nonatomic, retain) UIColor *sectionIndexTrackingBackgroundColor

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

Доступность: доступно в iOS 6.0 и более поздних версиях.

Объявлено в: UITableView.h

12 голосов
/ 07 октября 2013

В iOS 7 , чтобы изменить нормальный цвет фона , используйте свойство sectionIndexBackgroundColor.

sectionIndexTrackingBackgroundColor - это цвет фона при отслеживании пальцем.

(Спасибо HpTerm за начальные указатели, которые отлично работают на iOS 6.)

8 голосов
/ 12 февраля 2016

Добавьте следующий код в viewDidLoad (для swift):

tableView.sectionIndexColor = UIColor.lightGrayColor()
4 голосов
/ 13 февраля 2014

оптимизированный способ изменения цвета фона раздела индекса и цвета текста

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
    // Background color
    view.tintColor = [UIColor whiteColor];//[UIColor colorWithRed:77.0/255.0 green:162.0/255.0 blue:217.0/255.0 alpha:1.0];
    // Text Color
    UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view;
    [header.textLabel setTextColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"tableSection"]]];

}

enter image description here

3 голосов
/ 12 июля 2011

Я думаю, что прочитал не тот вопрос только сейчас.

Если вы имеете в виду индекс AZ, который позволяет вам перемещаться по заголовку раздела табличного представления, то это невозможно изменить, пока невозможно.Или вы можете создать свой собственный.

СЛЕДУЙТЕ ЗА

Это относится только к iOS6 .Для iOS6 и выше, пожалуйста, обратитесь к ответу HpTerm.

2 голосов
/ 12 марта 2012

Возможный дубликат здесь указывает «недокументированный» способ сделать это.Я использовал его в рабочем коде, он работает (не тестировался на iOS под 5.0).

1 голос
/ 21 января 2016

Извините, немного поздно, но для всех, кто ищет ответ, здесь код Swift

for view in tableView.subviews {
    if view.respondsToSelector("setIndexColor:") {
        view.performSelector("setIndexColor:", withObject: UIColor.yourColor())
    }
}

Тогда, если вы хотите получить индекс раздела как представление и делать с ним все, что хотите, вот оно:

for view in tableView.subviews {
    NSStringFromClass(view.classForCoder) == "UITableViewIndex" {
        // do what you want
        // e.g: view.hidden = true
    }
}
1 голос
/ 12 июля 2011

Извините, вы не можете изменить цвет индекса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...