Xcode9とiOS11で追加されたSafe Area Layoutのバグ

昨日まとめた「iOS8対応の古いアプリをiPhone Xに対応する手順」を見ながら手持ちのアプリを順次iPhone XおよびiOS11対応していてSafe Area Layoutのバグらしき現象を見つけました。

こんな感じでNavigation Barの縦幅ぐらいのマージン(C Card Infoラベルの上の余白)が直後のScroll Viewとの間にできています。この現象は縦置きでも置きているので実に嫌です。
発見したのはiPhone5でiOS10.3の実機で。
今回の修正でやったことといえば、
1)Segueを新たに作成し直し
SegueはKindをShow (e.g. Push)にするとNavigation Barが遷移先に適切なサイズで勝手に作成されて便利だったので。
2)Scroll Viewのマージンを設定しなおし
これでStoryboard上に表示されているマージンがSafe Areaからゼロになります。
3)画面一番最初のラベルのマージンを設定しました。
設定しないと明後日の位置になるみたいでScroll View内が真っ白だったので。
 
さらにシミュレータで確認したところ不思議なことに気づきました。
シミュレータの複数のデバイスのiOS9とiOS10で先ほどの症状を確認できましたが、シミュレータでiOS11だと正常。

iPhone6 iOS11実機でも正常でした。
iOS9とiOS10、というかSafe Area Layoutのバグっぽいです。