0
我有一個數組中名稱的列表,我想按照字母順序在集合視圖上顯示它們。還要顯示每個部分的字母表,我該如何實現這一點。 Click here for Image如何在CollectionView中按字母順序顯示名稱
我有一個數組中名稱的列表,我想按照字母順序在集合視圖上顯示它們。還要顯示每個部分的字母表,我該如何實現這一點。 Click here for Image如何在CollectionView中按字母順序顯示名稱
這裏是我的關於假設你已經擁有:
Model
)與屬性name
UICollectionView
的背後,是Model
對象的數組這裏就是我想要做的:
按name
屬性對Model
數組進行排序。
sortedModels = models.sorted(by: { (first, second) -> Bool in
return first.title.compare(second.title) == ComparisonResult.orderedAscending
}
創建一個新的屬性來保存UICollectionView數據,其中詞典鍵是單字母(「A」,例如),和節名稱的陣列,其將包含在正確的順序的章節。這將是在集合視圖的章節標題
var data = Dictionary<Character, [Model]>()
var sections = [Character]
迭代通過sortedList
,檢查name
屬性的第一個字符,然後可以在字典創建一個新的數組(如果該鍵不存在)或加入Model
現有陣列
models.forEach { (model) in
let firstCharacter = model.name.characters.first!
if var array = data[firstCharacter] {
array.append(model)
data[firstCharacter] = array
} else {
var array = [Model]()
array.append(model)
data[firstCharacter] = array
sections.append(firstCharacter)
}
}
那麼你numberOfSectionsInCollectionView:
將返回字典中鍵的數量
collectionView:numberOfItemsInSection:
會返回部分數組中的項目數
請使用'first.title
Sulthan