UICollectionViewで選択可能なセルを制限するにはどうすればよいですか?

Just4School

私のアプリケーションでは、UICollectionView12 x4の正方形があります。ユーザーが同じサイクルでそれらの行から4つだけを選択できるようにしたい。他の行をブロックするにはどうすればよいですか?のヘッダーについて何か読んだのですUITableViewが、これはで機能しませんでしたUICollectionView

アミット

このソリューションを試してください:

var firstIndex = -1
var lastIndex = -1
var arraySelectedIndexes = [Int]()
var setEligibleIndexesForSelection = Set<Int>()

let numerOfItems = 20

私はすべてのシナリオを検討しようとしました:

extension ViewController : UICollectionViewDelegate {
    func collectionView(_ collectionView: UICollectionView, shouldSelectItemAt indexPath: IndexPath) -> Bool {
        switch (self.setEligibleIndexesForSelection.contains(indexPath.row), self.arraySelectedIndexes.count == 0) {
        case (false,false):
            return false
        default:
            return true
        }
    }

    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        self.arraySelectedIndexes.append(indexPath.row)
        self.arraySelectedIndexes.sort()

        let cell = collectionView.cellForItem(at: indexPath)
        cell?.backgroundColor = UIColor.lightGray

        self.firstIndex = self.arraySelectedIndexes[0]
        self.lastIndex = self.arraySelectedIndexes[self.arraySelectedIndexes.count - 1]

        self.updateEligibleIndexArray()
    }

    func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) {
        let indexOfSelectedData = self.arraySelectedIndexes.firstIndex(of: indexPath.row)
    self.arraySelectedIndexes.remove(at: indexOfSelectedData!)

        if self.arraySelectedIndexes.count > 0 {
            self.firstIndex = self.arraySelectedIndexes[0]
            self.lastIndex = self.arraySelectedIndexes[self.arraySelectedIndexes.count - 1]
            self.updateEligibleIndexArray()
        }
        else {
            self.firstIndex = -1
            self.lastIndex = -1
            self.setEligibleIndexesForSelection.removeAll()
        }

        let cell = collectionView.cellForItem(at: indexPath)
        cell?.backgroundColor = UIColor.white

    }

    func updateEligibleIndexArray() {
        self.setEligibleIndexesForSelection.removeAll()

        for i in self.firstIndex..<self.firstIndex+4 {
            if i < self.numerOfItems && !self.arraySelectedIndexes.contains(i) {
                self.setEligibleIndexesForSelection.insert(i)
            }
        }

        for i in self.lastIndex-3..<self.lastIndex {
            if i >= 0 && !self.arraySelectedIndexes.contains(i) {
                self.setEligibleIndexesForSelection.insert(i)
            }
        }
    }
}

私はいくつかのシナリオを見逃したかもしれないので、それがうまくいったかどうか私に知らせてください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

選択したUICollectionViewセルからデータを取得するにはどうすればよいですか?

分類Dev

選択したUICollectionViewセルを強調表示するにはどうすればよいですか?(迅速)

分類Dev

UITableViewCellのようなUICollectionViewを選択して強調表示するにはどうすればよいですか?

分類Dev

列から制限データを選択するにはどうすればよいですか?

分類Dev

iview uiの複数選択に制限を追加するにはどうすればよいですか?

分類Dev

findAssocs()を選択した単語に制限するにはどうすればよいですか?

分類Dev

すべてのUICollectionViewセルを選択し、ボタンクリックで選択解除するにはどうすればよいですか?

分類Dev

選択可能な FullCalendar のルールを設定するにはどうすればよいですか

分類Dev

保存時に展開可能なフォルダを選択するにはどうすればよいですか?

分類Dev

画像コントロールが「選択可能」にならないようにする/選択枠を表示するにはどうすればよいですか?

分類Dev

WinFormTreeViewで親ノードを選択しないように制限するにはどうすればよいですか

分類Dev

複数選択せずにUICollectionViewに選択解除を追加するにはどうすればよいですか?

分類Dev

SwiftのVoiceOverでドラッグ可能なセルを選択する動作を変更するにはどうすればよいですか?

分類Dev

HTML5の「number」要素で可能な入力を制限するにはどうすればよいですか?

分類Dev

制限のない行から見つめている行を選択するにはどうすればよいですか?

分類Dev

選択範囲の編集可能なフィールドにテーブルセルを更新するにはどうすればよいですか?

分類Dev

ユーザーがPrimefacesデータテーブルから選択できる行数を制限するにはどうすればよいですか?

分類Dev

ドラッグ可能な距離を制限するにはどうすればよいですか?

分類Dev

csvファイルから選択したデータを2つの基準で制限するにはどうすればよいですか?

分類Dev

現在の列挙値に基づいて制限付きのランダムな列挙値を選択するにはどうすればよいですか?

分類Dev

ListViewでセルの長さを制限するにはどうすればよいですか?

分類Dev

mtz.monthpickerで選択可能な最大月を設定するにはどうすればよいですか?

分類Dev

選択可能な配列構造体をswiftで実装するにはどうすればよいですか?

分類Dev

TensorFlow で微分可能な演算選択を実行するにはどうすればよいですか?

分類Dev

TableViewのセルのチェックボックスを3つ以上選択しないようにユーザーを制限するにはどうすればよいですか

分類Dev

制限とある種のスコアを使用してランダムな行を選択するにはどうすればよいですか?

分類Dev

条件付きの行数に制限があるSqliteテーブルの行を選択するにはどうすればよいですか?

分類Dev

onEditを特定のセルの変更に制限するにはどうすればよいですか?

分類Dev

すでに選択されているクエリを制限するにはどうすればよいですか?

Related 関連記事

  1. 1

    選択したUICollectionViewセルからデータを取得するにはどうすればよいですか?

  2. 2

    選択したUICollectionViewセルを強調表示するにはどうすればよいですか?(迅速)

  3. 3

    UITableViewCellのようなUICollectionViewを選択して強調表示するにはどうすればよいですか?

  4. 4

    列から制限データを選択するにはどうすればよいですか?

  5. 5

    iview uiの複数選択に制限を追加するにはどうすればよいですか?

  6. 6

    findAssocs()を選択した単語に制限するにはどうすればよいですか?

  7. 7

    すべてのUICollectionViewセルを選択し、ボタンクリックで選択解除するにはどうすればよいですか?

  8. 8

    選択可能な FullCalendar のルールを設定するにはどうすればよいですか

  9. 9

    保存時に展開可能なフォルダを選択するにはどうすればよいですか?

  10. 10

    画像コントロールが「選択可能」にならないようにする/選択枠を表示するにはどうすればよいですか?

  11. 11

    WinFormTreeViewで親ノードを選択しないように制限するにはどうすればよいですか

  12. 12

    複数選択せずにUICollectionViewに選択解除を追加するにはどうすればよいですか?

  13. 13

    SwiftのVoiceOverでドラッグ可能なセルを選択する動作を変更するにはどうすればよいですか?

  14. 14

    HTML5の「number」要素で可能な入力を制限するにはどうすればよいですか?

  15. 15

    制限のない行から見つめている行を選択するにはどうすればよいですか?

  16. 16

    選択範囲の編集可能なフィールドにテーブルセルを更新するにはどうすればよいですか?

  17. 17

    ユーザーがPrimefacesデータテーブルから選択できる行数を制限するにはどうすればよいですか?

  18. 18

    ドラッグ可能な距離を制限するにはどうすればよいですか?

  19. 19

    csvファイルから選択したデータを2つの基準で制限するにはどうすればよいですか?

  20. 20

    現在の列挙値に基づいて制限付きのランダムな列挙値を選択するにはどうすればよいですか?

  21. 21

    ListViewでセルの長さを制限するにはどうすればよいですか?

  22. 22

    mtz.monthpickerで選択可能な最大月を設定するにはどうすればよいですか?

  23. 23

    選択可能な配列構造体をswiftで実装するにはどうすればよいですか?

  24. 24

    TensorFlow で微分可能な演算選択を実行するにはどうすればよいですか?

  25. 25

    TableViewのセルのチェックボックスを3つ以上選択しないようにユーザーを制限するにはどうすればよいですか

  26. 26

    制限とある種のスコアを使用してランダムな行を選択するにはどうすればよいですか?

  27. 27

    条件付きの行数に制限があるSqliteテーブルの行を選択するにはどうすればよいですか?

  28. 28

    onEditを特定のセルの変更に制限するにはどうすればよいですか?

  29. 29

    すでに選択されているクエリを制限するにはどうすればよいですか?

ホットタグ

アーカイブ