iPhone X を横向きで使用する場合は、safeAreaInsets をチェックして、左右に適切な大きさのガターを作成する必要があります。UITableView には、insetsContentViewsToSafeArea
セルの内容を安全な領域に自動的に保持する新しいプロパティ (デフォルトは true) があります。
UICollectionView に似たものがないように見えることに驚いています。縦スクロールのコレクション ビューの場合、横向きの場合は左右がセーフ エリアに挿入されることを期待します (逆に、横スクロールのコレクション ビューは、必要に応じて縦向きに挿入されます)。
この動作を確実にする最も簡単な方法は、コレクション ビュー コントローラーに追加することです。
- (void)viewSafeAreaInsetsDidChange {
[super viewSafeAreaInsetsDidChange];
UIEdgeInsets contentInset = self.collectionView.contentInset;
contentInset.left = self.view.safeAreaInsets.left;
contentInset.right = self.view.safeAreaInsets.right;
self.collectionView.contentInset = contentInset;
}
... contentInset.left/right が通常ゼロであると仮定します。
(注: はい、UICollectionViewController の場合、それは である必要がありますself.view.safeAreaInsets
。これが呼び出された時点では、safeAreaInsets
奇妙なことに への変更はまだに反映されていませんself.collectionView
)
何か不足していますか?このボイラープレートは十分に単純ですが、画面の端に触れるすべてのコレクション ビューで事実上必要になります。Apple がこれをデフォルトで有効にするものを提供していないのは、本当に奇妙に思えます。