UITableViewCell のデフォルトのフォントスタイル

概要

こんにちは。亀山です。今日は小ネタです。iOS で端末の文字サイズ設定 Dynamic Type に追従する方法として、UIFont の生成時や Storyboard でフォントサイズを指定せずにスタイルを指定することができます。 なるべく OS の見た目と合わせたいものです。そこで UITableView のセルのデフォルトの文字のスタイルを調べました。

結果

ラベル スタイル
textLabel body
detailTextLabel caption1

スクリーンショット

小さい時 大きい時

確認方法

UITableViewCell のスタイルを .subtitle にして調べました。

class ViewController: UITableViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        10
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = UITableViewCell(style: .subtitle, reuseIdentifier: "Cell")
        cell.textLabel?.text = "Hello \(indexPath.row)"
        cell.detailTextLabel?.text = "Subtitle \(indexPath.row)"
        cell.accessoryType = .checkmark
        return cell
    }
}

ブレークポイントで止めて UILabel.font の font-family を確認しています。

▿ Optional<UIFont>
  - some : <UICTFont: 0x7ff06a7119f0> font-family: "UICTFontTextStyleBody"; font-weight: normal; font-style: normal; font-size: 17.00pt
▿ Optional<UIFont>
  - some : <UICTFont: 0x7fbdf1f06d80> font-family: "UICTFontTextStyleCaption1"; font-weight: normal; font-style: normal; font-size: 12.00pt