は、ここに1つの、かなり単純なアプローチです。
var reuseIdentifiers = ["GameOver", "Normal", "Normal", "Normal", "Normal", "Normal", "Normal", "Normal", "Normal", "Normal", "Normal", "Normal", "Normal", "Normal", "Normal", "Normal"]
次のメソッドを定義し、collectionViewが画面に表示される前に、あなたのビューコントローラの初期化中にいつかそれを呼び出すと、毎回の前に:あなたはこのように、初期の、非ランダムな構成を設定することができますコレクションビューのデータがリロードさ:あなたのcollectionView(cellForItemAtIndexPath:NSIndexPath)
方法で
func randomizeReuseIdentifiers() {
var randomized = [String]()
for _ in initialIdentifiers {
let random = reuseIdentifiers.removeAtIndex(Int(arc4random_uniform(UInt32(reuseIdentifiers.count))))
randomized.append(random)
}
reuseIdentifiers = randomized
}
そしてを、現在のindexPathのためのマッチングreuseIdentifierを調べ、次のように:
func collectionView(_ collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let identifier = reuseIdentifiers[indexPath.item]
return collectionView.dequeueReusableCellWithReuseIdentifier(identifier, forIndexPath: indexPath)
}
この方法には、後で最初の配列reuseIdentifiers
に追加の識別子を追加して、1つ以上のランダムな場所に他のタイプのセルを含めることもできます。
現在のコードを表示できますか? – kye