我目前正在嘗試按照每行中標籤上的單詞對我的tableview進行排序。每行將有三件事:一種顏色,一種動物類型和動物的名字。我在想如何組織表格時有特定的順序,但取決於項目如何加載,行的順序可以是任何事情(問題)。通過多個數組排序Tableview行
我想按這個數組的顏色排序這些表:colorArray = ["red", "blue", "yellow", "green", "orange", "purple"]
。這意味着所有的紅色動物將首先,而所有的綠色的動物將在第一等。第一個問題是我不知道如何排序一個數組由另一個字符串數組。 第二個問題是我需要其他兩個數組(動物和動物名稱)根據顏色數組來改變它們的順序,所以正確的動物和他們的名字將會使用正確的顏色。
實施例:如果彩色陣列中裝載樣blue, green, orange, red
和動物陣列被裝載在像dog, cow, cat, monkey
,我會然後需要則需要這兩個陣列被分成red, blue, green orange
和monkey, dog, cow, cat
。這是因爲所有的動物都有正確的顏色。 如何解決這兩個問題?我抄我當前的代碼在底部:
func loadAnimals() {
let animalQuery = PFQuery(className: "Animals")
animalQuery.whereKey("userID", equalTo: PFUser.current()?.objectId! ?? String()) //getting which user
animalQuery.limit = 10
animalQuery.findObjectsInBackground { (objects, error) in
if error == nil {
self.colorArray.removeAll(keepingCapacity: false)
self.animalNameArray.removeAll(keepingCapacity: false)
self.animalTypeArray.removeAll(keepingCapacity: false)
for object in objects! {
self.colorArray.append(object.value(forKey: "colorType") as! String) // add data to arrays
self.animalNameArray.append(object.value(forKey: "animalName") as! String) // add data to arrays
self.animalTypeArray.append(object.value(forKey: "animalType") as! String) // add data to arrays
}
self.tableView.reloadData()
} else {
print(error?.localizedDescription ?? String())
}
}
}
//places colors in rows
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! AnimalCell //connects to color cell
//Adds the animal information in the cells
cell.colorType.text = colorArray[indexPath.row]
cell.animalName.text = animalNameArray[indexPath.row]
cell.animalType.text = animalTypeArray[indexPath.row]
return cell
}
使用** **一個自定義的結構或類,而不是多個陣列。它使生活變得更加輕鬆,並且可以解決您的問題。對於顏色使用索引來獲取自定義訂單。 – vadian