首页 文章

UITableView节 Headers 更改当前 Headers 的样式

提问于
浏览
2

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

Headers 的预设样式是:

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

具体来说,我想在 Headers 滚动时将 Headers 背景颜色更改为黑色,将文本颜色更改为仅当前部分 Headers 的白色 . 其他 Headers 的样式保留为预设样式 .

1 回答

  • 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
    }
    

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

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

相关问题