[解決済み] デバイスの向きを変えてUICollectionViewCellのサイズを変更する
2023-02-04 12:02:43
質問
私は
UICollectionView
と
UICollectionViewFlowLayout
.
各セルの大きさを設定するのは
collectionView:layout:sizeForItemAtIndexPath:
縦長から横長に切り替えたとき、セル間にパディングスペースを残さずに、各セルのサイズを完全にCollectionViewのサイズに合うように調整したい。
質問です。
1) 回転イベントの後、セルのサイズを変更するにはどうすればよいですか。
2) さらに良いことに、セルが常に画面サイズ全体に収まるようなレイアウトにするにはどうしたらよいでしょうか?
どのように解決するのですか?
1) 複数のレイアウトオブジェクトをメンテナンスして入れ替えることもできますが、もっと簡単な方法があります。ただ、以下をあなたの
UICollectionViewController
サブクラスに追加し、必要に応じてサイズを調整します。
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
// Adjust cell size for orientation
if (UIDeviceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation])) {
return CGSizeMake(170.f, 170.f);
}
return CGSizeMake(192.f, 192.f);
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
[self.collectionView performBatchUpdates:nil completion:nil];
}
呼び出し
-performBatchUpdates:completion:
を呼び出すと、レイアウトが無効になり、アニメーションでセルのサイズが変更されます(実行する追加調整がない場合は、両方のブロックパラメータにnilを渡せばよいでしょう)。
2) アイテムサイズをハードコードする代わりに
-collectionView:layout:sizeForItemAtIndexPath
でアイテムのサイズをハードコーディングする代わりに、collectionViewの境界の高さまたは幅を、画面に収めたいセルの数で割るだけです。コレクションビューが水平にスクロールする場合は高さを、垂直にスクロールする場合は幅を使用します。
関連
-
XCode のコンパイル例外を解決する clang: error: linker command failed with exit code 1
-
[解決済み] Xcode 6.3 - 現在の iOS Development 証明書または保留中の証明書要求がすでにあります。
-
[解決済み] App Storeのアプリと連動させる方法
-
[解決済み] iOS Simulatorでネットワークを無効にすることは可能ですか?
-
[解決済み] Swiftを使用してアプリのバージョンとビルド番号を取得するにはどうすればよいですか?
-
[解決済み] iPhoneでナビゲーションバーを1ページ目だけ非表示にする
-
[解決済み] swiftで電子メールアドレスを検証する方法は?
-
[解決済み】UICollectionView 自動レイアウトでセルサイズを変更する方法
-
[解決済み] セル間隔とUICollectionView - UICollectionViewFlowLayoutのサイズ比率を設定するには?
-
[解決済み] UICollectionViewがIndexPathのセルまで自動スクロールする件
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
libc++abi.dylib が NSException 型の捕捉できない例外で終了する理由 エラー
-
XCode のコンパイル例外を解決する clang: error: linker command failed with exit code 1
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] iOSのバージョンを確認する方法を教えてください。
-
[解決済み] Xcode 7のエラーです。"Missing iOS Distribution signing identity for ..." (iOS配布用署名IDがありません)
-
[解決済み] UITableViewの下にある余分なセパレータをなくす
-
[解決済み] App Storeのアプリと連動させる方法
-
[解決済み] Xcode 12、iOS Simulator用にビルドしても、iOS用にビルドされたオブジェクトファイルでは、アーキテクチャ「arm64」用にリンクされます。
-
[解決済み] iOS 13でダークモードをオプトアウトすることは可能ですか?
-
[解決済み] iPadマルチタスクのサポートには、これらの方向が必要です。