2015-07-13 80 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 
}