我想更改表视图控制器中节标题的字体类型和字体大小。
我的代码:
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 :(得分: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)
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想要的开发人员。