2

私は、大量のコード LXReorderableCollectionViewFlowLayout (Stan Chang Khin Boon が作成) を使用してきました。UICollectionView 内でアイテムを移動できます

複数のセクションを持つコレクション ビューがあります。セクションは、いくつかのコントロールを含むヘッダーを使用しています。ユーザーが空のセクションを作成し、これらのセクションにアイテムをドラッグできるようにします

コレクション ビューを使用して、写真の複数のアルバムを表示しています。各セクションは、異なるアルバムに関連付けられています。「アルバム 1」から「アルバム 2」に写真をドラッグすると、各アルバムに既にアイテムが含まれている場合に問題なく動作します。

しかし、アルバム (セクション) が空の場合、その空のセクションにオブジェクトを移動することはできません。

問題は「indexPathForItemAtPoint」にあると思います。セクションにアイテムが含まれている場合、このメソッドは正しい NSIndexPath を提供します。ただし、空の場合は、常にセクション = 0、行 = 0 を返します。

セクション「0」からセクション「1」に境界を越えると、NSIndexPath theIndexPathOfSelectedItem は 0,0 (セクション、行) になります。私はそれが1,0になると予想していたでしょう。

問題は「indexPathForItemAtPoint」にあるようです。セクションが空である可能性が考慮されておらず、国境を越えて別の (そして空の) セクションに入るときにデフォルトで 0, 0 になります。

前に述べたように、セクション "1" に既に項目がある場合、indexPath は正しく設定されています。

私が間違っていることについてのアイデアはありますか?

4

1 に答える 1

3

空のセクションにダミーの(しかし見えない)アイテムを配置することになりました。新しいセクションを作成するとき、セクションにダミーの値を配置します。目立たないように非表示にしています。新しいアイテムを追加するか、セクションからアイテムを削除するときはいつでも、ダミーアイテムがそこにあることを確認するためにテストします.

重要: セクションに少なくとも 1 つの実際の項目がある場合は、ダミーの値を削除します。それ以外の場合、コレクション リストはそれを描画しようとします。

これを行うためのより良い方法があると確信しています。方法を知っている場合は、新しい回答を投稿してください。

お役に立てれば。

于 2013-09-08T22:06:54.483 に答える