[解決済み] UICollectionView アニメーションによるデータ変更
2023-05-12 19:38:48
質問
私のプロジェクトでは、アイコンのグリッドを表示するためにUICollectionViewを使用しています。
ユーザーは、異なるNSSortDescriptorを持つコアデータからのフェッチを呼び出すセグメント化されたコントロールをクリックすることで、順序を変更することができます。
データ量は常に同じで、異なるセクション/行で終わるだけです。
- (IBAction)sortSegmentedControlChanged:(id)sender {
_fetchedResultsController = nil;
_fetchedResultsController = [self newFetchResultsControllerForSort];
NSError *error;
if (![self.fetchedResultsController performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}
[self.collectionView reloadData];
}
問題は、reloadDataが変化をアニメーション化せず、UICollectionViewが新しいデータでポップアップするだけであることです。
変更前と変更後のセルがどのindexPathにあったか記録しておき、[self.collectionView moveItemAtIndexPath: toIndexPath:] で変更のためのアニメーションを実行すべきでしょうか、それとももっと良い方法があるのでしょうか?
私はcollectionViewsのサブクラスをあまり理解していなかったので、どんなヘルプでも素晴らしいでしょう...。
ありがとうございます。 Billです。
どのように解決するのですか?
reloadDataはアニメーションしませんし、UIViewのアニメーションブロックに置かれた場合は確実にそうします。 それはUICollecitonView performBatchUpdatesブロックにあることを望むので、より似たようなことを試してみてください。
[self.collectionView performBatchUpdates:^{
[self.collectionView reloadSections:[NSIndexSet indexSetWithIndex:0]];
} completion:^(BOOL finished) {
// do something on completion
}];
関連
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] 制約条件の変更をアニメーションで表現するには?
-
[解決済み] UIViewController のビューが表示されているかどうかを確認する方法
-
[解決済み] UIDevice uniqueIdentifierは非推奨 - どうしたらいいの?
-
[解決済み] NSOperationとGrand Central Dispatchの比較
-
[解決済み] UITextBorderStyleNoneを使用してUITextFieldのパディングを設定する
-
[解決済み] Swiftのプロトコルでオプションのメソッドを定義するには?
-
[解決済み】iOSアプリの名前を変更する方法は?
-
[解決済み】UICollectionViewのセル間隔について
-
[解決済み] UICollectionViewのスペーシングマージン
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
制御が非ボイド関数の終了に達する
-
[解決済み] UITableViewの下にある余分なセパレータをなくす
-
[解決済み] UIViewに角丸をつける
-
[解決済み] SwiftでUIAlertViewを作成するにはどうしたらいいですか?
-
[解決済み] UIDevice uniqueIdentifierは非推奨 - どうしたらいいの?
-
[解決済み] Swiftを使用してアプリのバージョンとビルド番号を取得するにはどうすればよいですか?
-
[解決済み] アプリのプレビュー用にiOSシミュレータのビデオをキャプチャー
-
[解決済み] UILabelで複数行のテキストを表示する
-
[解決済み] ファイルはユニバーサル(3スライス)ですが、iOSの静的ライブラリのための(n)ARMv7-sスライスエラーが含まれていない、どうにかして回避するには?
-
[解決済み] iOS 11、Apple TV 4Kなどを搭載したXcode 9でワイヤレスデバッグを行う方法とは?