swift ios 8在tableview中更改section的字体标题

时间:2015-07-13 11:08:12

标签: ios swift uitableview fonts

我想更改表视图控制器中节标题的字体类型和字体大小。

我的代码:

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)!
}

但这不起作用。有什么想法吗?

10 个答案:

答案 0 :(得分:74)

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()
}

答案 1 :(得分:35)

$task1_exec

答案 2 :(得分:23)

Swift 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
    }

答案 3 :(得分:12)

针对Swift 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
}

答案 4 :(得分:7)

我发现最简单的方法是在View Controller或Table View Controller中执行以下操作。

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

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


}

答案 5 :(得分:6)

简单的解决方案:( Swift 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
}

答案 6 :(得分:0)

lorem ipsum {A + 2} dolor {XY} sit {eh?} amet
lorem ipsum {B} dolor {XY} sit {eh?} amet
lorem ipsum {C?} dolor {XY} sit {eh?} amet
lorem ipsum {A + 2} dolor {PQR} sit {eh?} amet
lorem ipsum {B} dolor {PQR} sit {eh?} amet
lorem ipsum {C?} dolor {PQR} sit {eh?} amet
lorem ipsum {A + 2} dolor {XY} sit {bla-bla-bla} amet
lorem ipsum {B} dolor {XY} sit {bla-bla-bla} amet
lorem ipsum {C?} dolor {XY} sit {bla-bla-bla} amet
lorem ipsum {A + 2} dolor {PQR} sit {bla-bla-bla} amet
lorem ipsum {B} dolor {PQR} sit {bla-bla-bla} amet
lorem ipsum {C?} dolor {PQR} sit {bla-bla-bla} amet

答案 7 :(得分:0)

通过在情节提要,xib,tableViewCell中自定义视图,您可以通过多种方法来归档问题,或者可以通过代码编写视图。

自定义完成后,您可以使用

module work(
input wire[1:0] s,
input wire i0, i5, i2, i3,
output reg y
);
always @(s)
begin
    if (s==2'b00)
        y = i0;
    else if (s==2'b01)
        y = i5;
    else if (s==2'b10)
        y = i2;
    else if (s==2'b11)
        y = i3;
    else
        y = y;
end
endmodule

答案 8 :(得分:0)

已针对Xcode 11,Swift 5更新

投票最多的答案对我不起作用,这是什么

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

    /// Create the view.
    let headerView = UIView()
    headerView.backgroundColor = .clear

    /// Create the label that goes inside the view.
    let headerLabel = UILabel(frame: CGRect(x: 30, y: 0, width: tableView.bounds.size.width, height: 30))
    headerLabel.font = UIFont(name: "myFont", size: 12)
    headerLabel.textColor = .white
    headerLabel.text = "myHeaderName"
    headerLabel.sizeToFit()

    /// Add label to the view.
    headerView.addSubview(headerLabel)

    /// Return view.
    return headerView
}

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    /// Return the same height as the height of the label in your header view.
    return 30
}

答案 9 :(得分:-1)

Xamarin / C#

基于Atticus使用willDisplayHeaderView的答案:

public override void WillDisplayHeaderView(UITableView tableView, UIView headerView, nint section)
{
    var header = headerView as UITableViewHeaderFooterView;
    header.TextLabel.Font = UIFont.FromName("Futura", header.TextLabel.Font.PointSize);
}

请注意,Xamarin是用于使用C#语言构建iOS应用程序的跨平台开发工具。上面的代码是C#,在Xcode中不起作用。答案仅适用于使用Xamarin但仍希望实现OP想要的开发人员。