アプリ開発

『Swift』TableViewのヘッダーの装飾変更(基本変更)

swiftiosblog
Pocket

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
}

以上です。参考になれば嬉しいです。むしろこうしたほうがいいとかあったら教えてください!

Pocket