2017-09-04 111 views
-1

如何在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 
    } 
} 

当前代码

Current code layout

应用设计 App design layout

+0

看一下'NSAttributedString'来修改字符串的一部分样式。 – the4kman

+0

另一种选择是创建自定义标题视图。 – algrid

+0

很简单。你不知道该怎么做? – matt

回答

0

为了使串大胆的一个组成部分,并保持其他部分定期,您可以使用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 
+0

关于填充。任何其他方法?目前的代码似乎不起作用 –

+0

为什么frame.height - 20? –

+0

我还有一个问题。当我向下滚动然后回滚到顶部。标题文本对齐位于左侧。为什么? –

相关问题