2017-09-04 110 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

我還有一個問題。當我向下滾動然後回滾到頂部。標題文本對齊位於左側。爲什麼? –

相關問題