UITableView节标题更改当前标题的样式

时间:2015-08-05 01:17:32

标签: ios uitableview

当UITableView在Swift中滚动时,是否有人知道内置方法或自定义方式来访问和更改UITableView(样式普通)中CURRENT节头的样式。

标题的预设样式为:

override func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    let header: UITableViewHeaderFooterView = view as! UITableViewHeaderFooterView //recast your view as a UITableViewHeaderFooterView
    header.textLabel.font = UIFont(name: "HelveticaNeue-CondensedBold", size: 14)
    header.contentView.backgroundColor = UIColor.groupTableViewBackgroundColor()
    header.textLabel.textColor = UIColor.grayColor()
}

具体来说,我希望在视图滚动时将标题背景颜色更改为黑色,将文本颜色更改为仅当前部分标题的白色。其他标题的样式保留为预设样式。

1 个答案:

答案 0 :(得分:1)

在我目前的应用中:

override public func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
{
    let view: UIView
    if let _view: UIView = tableView.headerViewForSection(section)
    {
        view = _view
    } else {
        let dxOffset: CGFloat = 16.0
        view = UIView(frame: CGRectMake(dxOffset, 0, tableView.frame.size.width - dxOffset, TableViewViewsHeight.sectionHeight))
    }

    // create our label
    let label: UILabel = UILabel(frame: view.frame)
    label.textColor = UIColor.appEmptyTextColor()
    label.text = "\(self.letters[section])"
    label.font = UIFont.systemFontOfSize(UIFont.smallSystemFontSize() + 4.0)

    // create the separator frame
    var separatorFrame: CGRect = view.frame
    separatorFrame.size = CGSizeMake(separatorFrame.size.width, 1.0)
    separatorFrame.offset(dx: 0.0, dy: view.frame.size.height - 1.0)

    // create the separator
    let imageView: UIImageView = UIImageView(frame: separatorFrame)
    imageView.backgroundColor = UIColor.appEmptyGolfTrainingTextColor()
    imageView.alpha = 0.4

    // add subviews
    view.addSubview(label)
    view.addSubview(imageView)

    // setup the view
    view.backgroundColor = UIColor.whiteColor()

    return view
}

这将创建一个带有白色背景,分隔符和包含字母的标签的标题。

您应该使用func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?来更改节标题的外观。