iOS

CollectionViewの並び替えを実装する

投稿日:

はじめに

こんにちは。Yossyです。
前回まではCollectionViewのカスタムレイアウトを作成していました。
このCollectionViewのセルの並び替え処理を実装をしたので、備忘録ついでに紹介したいと思います。

実装方法

自分が作成した時は要件の都合上、CollectionViewからセル(カスタムクラス実装)自体を取得し、セルが持つプロパティ(並び順含む)をDBに保存していました。そして、次にCollectionViewを表示する際にDBから並び順を含めたプロパティを読み出して使用するという流れです。

手順

①ロングタップの実装
②並び替え可とする実装
③並び替え時のデータ処理

ロングタップの実装

ロングタップジェスチャーを追加します。
ロングタップでセルを並び替えて、指を離すと並び替えが完了します。
移動するセルのインスタンスをプロパティに入れて保持しておきます。

並び替えを可とする

デリゲートメソッドcollectionView(_:canMoveItemAt:)で true を返します。

並び替え時のデータ処理

セルが移動された際に呼ばれるデリゲートメソッドcollectionView(_:moveItemAt:to:)を実装します。
ここで、CollectionView内のセルを取得し、配列に格納して、DBへの保存処理を行います。

次回表示時

DBからセルの取得処理を行って、order順に表示してあげます。

他に

iOS11以降であれば、UICollectionViewDragDelegateとUICollectionViewDropDelegateを利用した実装方法も可能です。
機会があれば、こちらも紹介したいと思います。

さいごに

シンプルな並び替え実装は難しくないですが、色々と要件が重なると途端に難しくなりますね。色々な実装パターンを知っておいて、使い分けしたいですね。

おすすめ書籍

[改訂新版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 WEB+DB PRESS plus 詳解 Swift 第5版 SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)

blog-page_footer_336




blog-page_footer_336




-iOS
-,

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

CAPTCHA


関連記事

Flutterでテストコードを書こう! 単体テスト・Widgetテスト・インテグレーションテスト

はじめに Flutterでは、テストコードを実装しやすい環境が整っています。この記事では、単体テスト・Widgetテスト・インテグレーションの実装方法を紹介します。 単体テスト Dartの testパ ...

UserNotificationsの使い方について

はじめに 普段の業務ではプッシュ通知の制御にまだUIApplicationDelegateのメソッドを使用しているのですが、近々UserNotificationsフレームワークに切り替える必要がありそ ...

【Swift】MemoryLeakの簡単な確認方法

はじめに こんにちは、suzukiです。前回の記事で循環参照について触れました。今回は問題の発見に役立ったツールについて簡単に紹介していこうと思います。 今回行いたいこととしては ①開発中のテスト ② ...

swift

【Swift】Xcode10.3でSwift5で書かれたプロジェクトでデリゲートが呼ばれない

はじめに こんにちはsuzukiです。Xcode10.3でリリースビルドした際のバグについて備忘と、もし他の方が同じ事象が発生していたら何かヒントになればと思い内容をこちらにまとめさせていただきます。 ...

swift

[Swift 3] テキストの装飾(フォント・文字サイズ・文字間隔・行間・文字色・下線)

はじめに どうもはじめです。 今回は文字の装飾をやってみようと思います。 完成図を載せておきます。   フォント・文字サイズ変更 [crayon-6ace95a2d50a6401776552 ...

フォロー

blog-page_side_responsive

2019年11月
日 月 火 水 木 金 土
 12
3456789
10111213141516
17181920212223
24252627282930

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。