我想显示一个索引表视图。
默认情况下,部分索引标题为灰色。
如何更改颜色?
答案 0 :(得分:68)
编辑/关注iOS7 (2013年9月)阅读Graham Perks的答案,了解iOS7的后续行动,他解释了sectionIndexTrackingBackgroundColor
和sectionIndexBackgroundColor
跟进(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"]]];
}
答案 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)
只需将表格视图的颜色更改为所需的颜色即可。