はつねむさんぽのパンくずたち

エンジニアになる人生で通った道のあしあと

UITableViewのヘッダーに置いたUIButtonが効かない時の原因

問題

UITableViewのヘッダーにUIButtonを含んだビューを設定しているが、
UIButtonを押しても反応しない。

原因

ヘッダーの高さを指定していなかったことが原因。
Heightが0のビューの上にUIButtonが乗っている状態になっていた。
画面のタップ情報はsuperviewから伝わるので、
superviewがUIButtonを覆っている必要がある。

解決策

ヘッダーの高さを指定してあげる。

override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return headerHeight
}