【Swift】UITableViewでセクションの間隔を調節する

# はじめに
タイトルのまんまなんですけど、わかりにくいので画像を貼っときます。
![Simulator Screen Shot - iPhone 14 Pro - 2022-10-28 at 19.01.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/1101ecf2-48ba-5aa3-1217-fc12185897d7.png)

やっていきます

# 調節前のコード
SnapKit使ってます笑
```swift
import UIKit
import SnapKit

class ViewController: UIViewController {

    private let tableView: UITableView = {
        let view = UITableView(frame: .zero, style: .insetGrouped)
        view.register(UITableViewCell.self, forCellReuseIdentifier: "cell")

        return view
    }()

    private let items = ["アイテム1", "アイテム2", "アイテム3", "アイテム4", "アイテム5"]

    override func viewDidLoad() {
        super.viewDidLoad()
        setup()
    }

    private func setup() {
        tableView.delegate = self
        tableView.dataSource = self

        view.addSubview(tableView)

        tableView.snp.makeConstraints { make in
            make.edges.equalToSuperview()
        }
    }
}

extension ViewController: UITableViewDelegate, UITableViewDataSource {
    // 1つのセクションに表示するセルの数
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 1
    }
    // セクションの数
    func numberOfSections(in tableView: UITableView) -> Int {
        return items.count
    }
    // セルの高さ
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 50
    }
    // セルの設定
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
        var content = cell.defaultContentConfiguration()
        content.prefersSideBySideTextAndSecondaryText = true

        content.text = items[indexPath.row]
        content.secondaryText = items[indexPath.row]
        content.image = UIImage(systemName: "graduationcap.fill")

        cell.contentConfiguration = content

        return cell
    }
}
```

# やりかた
本来ヘッダーとフッターがある場所ですのでどちらかの高さを0にすれば縮めることができます
### いい感じ
```swift
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return .zero
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    nil
}
```
![Simulator Screen Shot - iPhone 14 Pro - 2022-10-28 at 19.08.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/41140346-ac8b-37e2-6549-f7efc3121ad9.png)

### 0スペース
両方の高さを0にすればスペースをなくすこともできます
でも、これはおかしいです笑
```swift
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return .zero
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    nil
}

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return .zero
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
    return nil
}
```
![Simulator Screen Shot - iPhone 14 Pro - 2022-10-28 at 19.10.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/d4c60191-25f8-0f25-509b-bf66beca402b.png)

### 自分で調整
```swift
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 60
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    nil
}
```
![Simulator Screen Shot - iPhone 14 Pro - 2022-10-28 at 19.11.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/bccdedbd-8a02-755d-4fde-d60de713a6ac.png)

# おわり
もうあんまりUITableViewが使われることはないのかな？