UITableView更改标题标题颜色

时间:2012-01-24 17:01:38

标签: iphone ios uitableview inappsettingskit

我在InAppSettingsKit中设置了UITableView的样式,并希望更改标题标题的颜色:

image of tableview

标签Without titleText Field应为白色。怎么办呢?

感谢。

6 个答案:

答案 0 :(得分:59)

这是一个老问题,但我认为答案需要更新。

此方法不涉及定义和创建自己的自定义视图。 在iOS 6及更高版本中,您可以通过定义

轻松更改背景颜色和文本颜色
-(void)tableView:(UITableView *)tableView 
    willDisplayHeaderView:(UIView *)view 
    forSection:(NSInteger)

委托方法。

例如:

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
    // Background color
    view.tintColor = [UIColor blackColor];

    // Text Color
    UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view;
    [header.textLabel setTextColor:[UIColor whiteColor]];

    // Another way to set the background color
    // Note: does not preserve gradient effect of original header
    // header.contentView.backgroundColor = [UIColor blackColor];
}

取自我的帖子:https://happyteamlabs.com/blog/ios-how-to-customize-table-view-header-and-footer-colors/

答案 1 :(得分:5)

在tableViewController中实现tableView:viewForHeaderInSection:方法。这将允许您提供自己的标题视图,其中可以包含您想要的任何格式的UILabel,例如。

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UILabel *customLabel = [[UILabel alloc] init];
    customLabel.text = [self tableView:tableView titleForHeaderInSection:section];
    return customLabel;
}

请记住将标签框设置得足够高,以便将这些部分分开。您可能希望将标签嵌入到更大的UIView中并返回它以简化定位(例如,如果您想增加标签上的左边距)。

答案 2 :(得分:2)

It took me a few minutes to "translate" this to Swift, but here's a working equivalent in Swift 1.2 (iOS 8). Be sure and implement UITableViewDelegate in your class:

// MARK: - VIEW METHODS
override func viewDidLoad() {
    tableView.delegate = self
}

// MARK: - TABLEVIEW DELEGATE METHODS
override func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    let header = view as! UITableViewHeaderFooterView
    header.textLabel.textColor = UIColor.whiteColor()
}

答案 3 :(得分:1)

我发现了这个: How to change text color for Section Headers in a Grouped TableView in iPhone SDK? 它是一种享受,我把它与@rishi的答案链接中的一些代码相结合,它让我的生活变得更加轻松!虽然我不得不稍微调整标签视图的协调,但它有点像魅力。

答案 4 :(得分:0)

您可以在表格单元格创建方法中尝试以下代码行 -

cell.textLabel.backgroundColor = //Your color;
cell.detailTextLabel.backgroundColor = //Your color;

您可以参考以下内容获取更多详细说明,您可以在其中找到与您提到的类似的创建自定义分段表的详细示例 - http://undefinedvalue.com/2009/08/25/changing-background-color-and-section-header-text-color-grouped-style-uitableview

答案 5 :(得分:0)

Swift 4版本:

func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    guard let headerView = view as? UITableViewHeaderFooterView else { return }
    headerView.textLabel?.textColor = .red // any color
}