UITableViewでのheaderの装飾方法についてわかったことをまともます。入門書籍等ではなかなか装飾などは載っていないので、海外のQ&Aのコードを読みあさりまとめてみます。
headerを装飾する場合は返り値が『UIView?』を使う
入門書籍では文字を表示することを目的に返り値をStringで返す。下記の書き方が多いと思います。
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return "タイトル"
}
これを以下のように書きます。
返り値が『UIView?』にする書き方
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let label = UILabel(frame: CGRect(x:0, y:0, width: tableView.bounds.width, height: 50))
label.text = "タイトル"
return label
}
このようにすることで、例のでは『label』に対して装飾するプロパティーを設定すれば変更できます。
装飾例
上記の例に対して変更していきます。
文字位置を変えたい!
label.textAlignment = NSTextAlignment.Center
プロパティを『.Right』『.Center』『.Left』に変更すれば文字寄せが変更できます。
文字サイズを変更したい!
label.font = UIFont.italicSystemFontOfSize(21)
『italicSystemFontOfSize()』の引数を変えることで変更できます。
背景色を変更したい!
label.backgroundColor = UIColor.redColor()
UIColorを変更してあげてください。
文字色を変更したい!
label.textColor = UIColor.whiteColor()
UIColorを変更してあげてください。
まとめてかくと
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let label = UILabel(frame: CGRect(x:0, y:0, width: tableView.bounds.width, height: 50))
// 文字位置
label.textAlignment = NSTextAlignment.Center
// 文字サイズ
label.font = UIFont.italicSystemFontOfSize(21)
// 背景色
label.backgroundColor = UIColor.redColor()
// 文字色
label.textColor = UIColor.whiteColor()
// 表示される文字
label.text = "タイトル"
return label
}
以上です。参考になれば嬉しいです。むしろこうしたほうがいいとかあったら教えてください!
コメント