2017-03-23 27 views
0

這是我試過的。如何垂直對齊tableview標題中的文本swift

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    let header = view as? UITableViewHeaderFooterView 
    header?.textLabel!.frame = CGRect(x: 0, y: 25, width: tableView.frame.size.width, height: 50) 
    header?.textLabel?.text = "Testing" 
    header?.textLabel?.textColor = UIColor.gray 
    header?.textLabel?.font = UIFont(name: "Avenir-Book", size: 12) 
    return header 
} 

仍然沒有辦法在段標題中垂直對齊文本。

任何想法?

+0

你可以發佈圖片,看看你在做什麼,你現在擁有什麼? –

+0

我試過的東西沒有移動任何東西。它仍然是默認的標題標籤外觀。 – mocode10

回答

0

所有的初始化首先是錯誤,請檢查您的header值始終爲零,試着用這個代碼,你也可以創建自定義標題視圖,是更好的方法

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    let header = UITableViewHeaderFooterView() 

     for view in (header.subviews) { 
      view.removeFromSuperview() 
     } 

    let label = UILabel(frame: CGRect(x: 0, y: 25, width: tableView.frame.size.width, height: 50)) 

    label.text = "Testing" 
    label.textColor = UIColor.gray 
    label.font = UIFont(name: "Avenir-Book", size: 12) 
    header.addSubview(label) 
    header.bringSubview(toFront: label) 
    return header 

} 

我希望這有助於你,最好的問候

+0

@ mocode10終於我的回答對你有幫助嗎? –

+0

@Reiner Melian。我只是想在你的答案中澄清這段代碼的目的,用於在(header.subviews)中查看{ view.removeFromSuperview() }謝謝! – joemalski

+0

@joemalski這段代碼刪除了以前添加的所有UILabel,如果你不這樣做,你會得到一系列重疊的UILabel,無論如何,最好的方法是創建一個自定義Header視圖來避免這種情況 –