2015-07-13 79 views
16

部8改變字體標題我想改變一個節頭的字體類型和字體大小在表視圖控制器。迅速IOS在的tableview

我的代碼:

func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) { 
    let header = view as! UITableViewHeaderFooterView 
    header.textLabel.textColor = UIColor.blackColor() 
    header.textLabel.font = UIFont(name: "Futura", size: 38)! 
} 

但是,這是行不通的。有任何想法嗎?

+0

富利字體文件必須有該字體包含項目文件夾裏面 – iRiziya

+0

。單元格文本也有這種字體, – Ghost108

+0

ok ..然後嘗試'viewForHeaderInSection'方法中的上述代碼。併爲標題文本標籤'var title = UILabel()title.font = UIFont(name:「Futura」,size:38)! title.textColor = UIColor.lightGrayColor()'然後'header.addSubview(標題)' – iRiziya

回答

7

斯威夫特3

override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
      let headerView = UIView() 
      headerView.backgroundColor = UIColor.lightGray 

      let headerLabel = UILabel(frame: CGRect(x: 30, y: 0, width: 
       tableView.bounds.size.width, height: tableView.bounds.size.height)) 
      headerLabel.font = UIFont(name: "Verdana", size: 20) 
      headerLabel.textColor = UIColor.white 
      headerLabel.text = self.tableView(self.tableView, titleForHeaderInSection: section) 
      headerLabel.sizeToFit() 
      headerView.addSubview(headerLabel) 

      return headerView 
     } 

    override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
     return 40 
    } 
+0

這不起作用 - 你能解釋一下headerlabel文本條目嗎? –

+0

它將標籤的文本設置爲表格視圖的部分標題。我在運行Swift 3的Live應用程序中使用它。您是否事先設置了標題? – AdamVanBuskirk

+0

你需要確保有一個單元格的高度出於某種原因 - 這使它工作 –

31
func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) 
{ 
    let header = view as! UITableViewHeaderFooterView 
    header.textLabel?.font = UIFont(name: "Futura", size: 11) 
    header.textLabel?.textColor = UIColor.lightGrayColor() 
} 
+6

'UITableViewHeaderFooterView.textLabel'是隻讀屬性。所以'header.textlabel = title'將不起作用。 – Atticus

2
func tableView(tableView: UITableView, 
     viewForHeaderInSection section: Int) -> UIView? { 
       let hView = UIView(frame: CGRectMake(0, 0, tableView.frame.width, 44)) 
       hView.backgroundColor = UIColor.whiteColor() 
       let hLabel = UILabel(frame: CGRectMake(15, 2, 30, 44)) 
       hLabel.font = UIFont(name: "YOUR_FONT_NAME", size: 30) 
       hLabel.textColor = kiExtremeOrange 
       hLabel.text = alphabets[section] 
       hView.addSubview(hLabel) 
       return hView 
} 

注:首次進口所需的字體使用

54
override func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) 
{ 
    let header = view as! UITableViewHeaderFooterView 
    header.textLabel?.font = UIFont(name: "Futura", size: 38)! 
    header.textLabel?.textColor = UIColor.lightGrayColor() 
} 
+5

這個解決方案似乎比公認的答案更清晰,並且在Swift 2.0中爲我工作得非常好。 –

6

簡單有效的解決方案:(雨燕2.0)

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 

      //Create label and autoresize it 
      let headerLabel = UILabel(frame: CGRectMake(0, 0, tableView.frame.width, 2000)) 
      headerLabel.font = UIFont(name: "Avenir-Light", size: 30) 
      headerLabel.text = self.tableView(self.tableView, titleForHeaderInSection: section) 
      headerLabel.sizeToFit() 

      //Adding Label to existing headerView 
      let headerView = UIView() 
      headerView.addSubview(headerLabel) 

      return headerView 
} 
5

我發現最簡單的方法是在View Controller或Tab中執行以下操作視圖控制器。

func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) { 

    let header = view as! UITableViewHeaderFooterView 
    header.textLabel?.font = UIFont(name: "FontName", size: 14) 


} 
7

更新了斯威夫特3

func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) { 

    let header = view as? UITableViewHeaderFooterView 
    header?.textLabel?.font = UIFont(name: "Futura", size: 12) // change it according to ur requirement 
    header?.textLabel?.textColor = UIColor.red // change it according to ur requirement 
}