最近、Xcode 9-betaとiOS 11にアップグレードしました。プロジェクトでPlayを実行してプッシュすると、ステータスバーがビューの上に直接表示されるのではなく、すべてのビューがステータスバーによって約20ピクセルプッシュダウンされました。 iOS 10を持っている私のパートナーには、この問題はありません。参考のためにスクリーンショットを添付しました。
誰でもアドバイスを提供できますか?どんな助けでも大歓迎です。事前に感謝します。
迅速な回答
contentInsetAdjustmentBehavior
またはtableView
オブジェクトのscrollView
を.never
に設定することもできます。
if #available(iOS 11.0, *) {
tableView.contentInsetAdjustmentBehavior = .never
}
または
if #available(iOS 11.0, *) {
scrollView.contentInsetAdjustmentBehavior = .never
}
私は同じ問題に直面していましたが、何時間もの検索の後、最終的に問題を発見しました。
Xcode 9にはセーフエリアという新しい概念があり、デフォルトでは、ストーリーボードはすべてのビューの上部にセーフエリアを追加します。
ViewControllerのルートビューを選択し、サイズインスペクターを選択すると、 image で確認できるように、チェックボックスが表示されます。
チェックを外すと、この上部のパディングは消えます。
if (@available(iOS 11.0, *)) {
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
UITableViewStyle.grouped
を使用している場合-tableView.contentInsetAdjustmentBehavior = .never
を追加しても35pxのギャップが残っています。 UITableViewStyle
をplain
に変更してみてください。これは私にとって問題を解決しました。