Подтвердить что ты не робот

Как изменить цвет шрифта заголовков разделов

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

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

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

4b9b3361

Ответ 1

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

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

FOLLOW UP

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

Ответ 2

EDIT/FOLLOW UP 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

Ответ 3

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

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

(Благодаря HpTerm для начальных указателей, которые отлично работают на iOS 6.)

Ответ 4

Добавьте код ниже в viewDidLoad (для быстрого):

tableName.sectionIndexColor = UIColor.lightGrayColor()

Ответ 5

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

- (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

Ответ 6

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

Ответ 7

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

Ответ 8

Простите, немного поздно, но для всех, кто ищет ответ, вот код 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
    }
}