如何在Swift中自定义多行表格视图标题?
如何在swift中编辑多行标题样式?我是否可以让“下周”变得更加大胆,并让日期变为正常?另一个问题是如何在标题底部添加一些填充项?如何在Swift中自定义多行表格视图标题?
override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
if section == 0{
let header = view as! UITableViewHeaderFooterView
header.textLabel?.textColor = UIColor.white
header.textLabel?.font = UIFont(name: "Helvetica", size: 18)
header.textLabel?.text = "Next Week \n \(firstDay) - \(seventhDay)"
header.textLabel?.frame = header.frame
header.textLabel?.textAlignment = NSTextAlignment.center
}
}
当前代码
为了使串大胆的一个组成部分,并保持其他部分定期,您可以使用NS(Mutable)AttributedString
。这使您可以设置所有不同种类花式的只是字符串的特定部分:
let header = UITableViewHeaderFooterView()
header.textLabel?.textColor = UIColor.white
var mutableString = NSMutableAttributedString(string: "Next Week \n \(firstDay) - \(seventhDay)", attributes: [NSFontAttributeName:UIFont(name: "Helvetica", size:18.0)!])
mutableString.addAttributes([NSFontAttributeName:UIFont(name:"Helvetica-Bold", size:18.0)!], range: NSRange(location: 0, length: 9)) //lenght 9 because "Next Week" is 9 characters
header.textLabel?.attributedText = mutableString
然后添加填充简单地使为textLabel的高度时,则头部的高度,但让他们在同一高度上开始。
header.textLabel?.frame = CGRect(x: 0, y: 0, width: header.frame.width, height: header.frame.height-20) //minX and minY because the screen renders from top left
header.textLabel?.textAlignment = NSTextAlignment.center
关于填充。任何其他方法?目前的代码似乎不起作用 –
为什么frame.height - 20? –
我还有一个问题。当我向下滚动然后回滚到顶部。标题文本对齐位于左侧。为什么? –
看一下'NSAttributedString'来修改字符串的一部分样式。 – the4kman
另一种选择是创建自定义标题视图。 – algrid
很简单。你不知道该怎么做? – matt