UITableView 部分标题更改当前标题的样式
Posted
技术标签:
【中文标题】UITableView 部分标题更改当前标题的样式【英文标题】:UITableView Section Header Change Style of Current Header 【发布时间】:2015-08-05 01:17:32 【问题描述】:有没有人知道当 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】:在我当前的应用程序中:
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?
来更改节标题的外观。
【讨论】:
这只是设置标题样式的代码。您能否提交一个示例,说明如何在视图滚动不同部分时动态更改当前部分标题的样式。我希望贴在表格视图顶部的标题与下面的其他标题具有不同的样式。 您的意思是在内容滚动时? 是的。随着内容的滚动。成为当前节标题的每个标题(粘在 tableview 的顶部)在粘在 tableview 的顶部时采用自定义样式 这很有趣。订阅!以上是关于UITableView 部分标题更改当前标题的样式的主要内容,如果未能解决你的问题,请参考以下文章
UITableView 是不是支持带有矩形(非圆形)部分的分组样式?