我開始使用UITableViews,似乎無法找出如何使用代碼更改單元格的位置。改變故事板中的位置很簡單,但我需要能夠快速完成。更改單元格的索引
更改單元格的索引
回答
TLDR;
- 更新您的信息。即
swap(&arr[2], &arr[3])
。 - 調用tableView的
reloadData()
方法來反映對數據的更改。
龍答案
通過檢查它的數據源(UITableViewDataSource
)爲它所需要的信息UITableView
工程實例。這包括段和行的數量,以及表視圖要使用的UITableViewCell
的實例。這是由以下UITableViewDataSource
委託方法定義:
override func numberOfSectionsInTableView(tableView: UITableView) -> Int;
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int;
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell;
通常情況下,你會立足於一些數據,你有,可能一個數組或類似容器前兩者。例如,如果您的tableView從名爲fruitArray
(其中包含不同水果的名稱 - 字符串列表)陣列顯示的數據,那麼你可能有類似以下內容:
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// Our array is one dimensional, so only need one section.
// If you have an array of arrays for example, you could set this using the number of elements of your child arrays
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// Number of fruits in our array
return fruitArray.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("yourCellId") // Set this in Interface Builder
cell.textLabel?.text = fruitArray[indexPath.row]
return cell
}
然後,你可以看到,回答你的問題變得簡單!由於給定單元格的內容基於fruitArray
,所以您只需更新數組。但是,如何讓tableView「重新檢查」它的dataSource?那麼,你使用reloadData
方法,像這樣:
swap(&fruitArray[2], &fruitArray[3])
tableView.reloadData()
這則觸發的tableView爲「複檢」它的DataSource,從而導致您的數據交換出現在屏幕上!
如果您想用戶能夠交換單元的位置,你可以使用下面的的UITableViewDelegate(不UITableViewDataSource
)的委託方法:
override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool
具有看看this article更多信息。您還可以查看關於UITableView,UITableViewDataSource和UITableViewDelegate的Apple文檔以獲取更多詳細信息。
希望這會有所幫助!
非常感謝Jason的幫助! –
如果您認爲這回答了您的問題,請標記爲已接受的答案。謝謝! – Jason
- 1. GridView單元格的單元格索引
- 2. 根據單元格引用的單元格更改單元格的值
- 3. 引用單元格以更改行
- 4. Matlab,單元格索引
- 5. 如何通過行和列的索引更改表格單元格的顏色?
- 6. 如果我知道單元格的行和列索引,如何更改HTML表格單元格中的屬性?
- 7. 根據另一個單元更改單元格引用鏈接
- 8. 當更新更改單元格的單元格時UITableView崩潰
- 9. ng網格單元格行/列索引
- 10. UICollectionView更改佈局 - 更改單元格
- 11. WPF DataGrid單元格更改後更改
- 12. java JTable單元格更改
- 13. 更改鎖定單元格
- 14. 更改單元格顏色
- 15. 更改單元格顏色
- 16. VBA - 單元格更改
- 17. 更改單元格數據
- 18. 更改單元格與range.replace
- 19. 更改Jtable單元格值
- 20. 如何更改給定行和索引處的單元格的背景顏色?
- 21. 更改單元格的值格式
- 22. JavaScript更改表格單元格的src
- 23. 更改單元格的格式類型
- 24. 選定的索引和單元格值
- 25. UI單元格的選定索引
- 26. 更改單元格區域時,單元格的值更改爲「價值」
- 27. android listview:如何更改特定單元格的背景顏色(按索引)?
- 28. 更改被點擊的單元索引處的數據源
- 29. tableview更新錯誤的索引路徑的單元格
- 30. jquery搜索表格單元格 - >更新相鄰單元格
我假設你正在討論改變tableview中單元格的索引/順序。您需要在tableview的數據源中更改單元格數據的順序,然後調用'tableview.reloadData()' –