UITableViewのSectionHeaderの位置がおかしい
はじめに
先日、作成した画面のUITableViewのsectionHeaderの位置が微妙にずれていてNavigationBarに隠れてしまっているのが発覚しました。 原因がよく分からなかったので色々と調べてみました。
現象
セクションタイトル1
がNavigationBarの下に少し隠れてしまってます。
原因
これよくあるExtend Edges
かTranslucent
の設定ミスですぐ直るかと思ったら全然うまくいかず、設定をいろいろ変えてみてもうまくいかず...。
最終的にはうまく動いている画面と設定を片っぱしから比較してやっと見つけました。
うまくいっている画面はここがAutomatic
ではなく0
になっていました。
今までいじったことがなかった設定なのでなんの設定?っと思って調べてみたら、sectionHeaderの高さの見積り値でこれが0
だと見積り値を使わなくなるとのこと。
さらにiOS10
とiOS11
でデフォルト値が違うため明示的に指定していないとiOS11
以降で動作が変わります。
ということでここを明示的に0
を指定して見積り値を使わないようにしたところ正しく動作するようになりました。
よかった。
さいごに
OSやXcodeのアップデートで動作が変わることがあるのはなかなか気が付かないので結構怖いなと。 今回はうまくいっている画面がたまたまあり、それと比較して問題が見つけられたのですが今後もこんなことがあるとちょっと困るなと思いました。
丸一日かかってしまいましたが無事修正できてよかったです。
参考資料
https://qiita.com/masashi-sutou/items/405adf126d0d2c4f0b4e https://armlock.hatenablog.com/entry/2018/05/27/152606