如何更改节索引标题的字体颜色

时间:2011-07-12 09:50:48

标签: ios iphone uitableview

我想显示一个索引表视图。

默认情况下,部分索引标题为灰色。

如何更改颜色?

9 个答案:

答案 0 :(得分:68)

编辑/关注iOS7 (2013年9月)阅读Graham Perks的答案,了解iOS7的后续行动,他解释了sectionIndexTrackingBackgroundColorsectionIndexBackgroundColor


跟进(2012年9月)此问题的未来读者。

从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

答案 1 :(得分:12)

iOS 7 中,要更改正常背景颜色,请使用sectionIndexBackgroundColor属性。

sectionIndexTrackingBackgroundColor是用手指追踪时的背景颜色。

(感谢HpTerm提供了适用于iOS 6的初始指针。)

答案 2 :(得分:7)

viewDidLoad中添加以下代码(适用于swift):

tableView.sectionIndexColor = UIColor.lightGrayColor()

答案 3 :(得分:4)

更改索引部分背景颜色和文本颜色的优化方法

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

答案 4 :(得分:3)

我想我刚才读错了问题。

如果你的意思是A-Z索引可以让你浏览tableview的节标题,那么它就不能改变,暂时不可能。或者你可以创建自己的。

关注

  

这仅适用于iOS6之前。对于iOS6及以上版本,请参阅HpTerm的答案。

答案 5 :(得分:2)

可能的重复here表示“未记录”的方式。我在生产代码中使用它,它可以工作(没有在5.0下测试iOS)。

答案 6 :(得分:1)

很抱歉,您无法更改索引的颜色。

答案 7 :(得分:1)

对不起,有点晚了,但对于每个正在寻找答案的人来说,这里是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
    }
}

答案 8 :(得分:0)

只需将表格视图的颜色更改为所需的颜色即可。