我有一个iOS项目,我正在使用Swift 2在Xcode 7中工作。我有array
名为details
的字典,其中包含String
和{ {1}}价值。 Int
中的Int
被称为cellOrder
,其目的是根据Class
对details
array
进行排序。 TableView
cellOrder
值。
数组显示名称为Int
的值。我看了here试图将这个实现到我的项目中但没有成功。
这是我的阵列:
String
这是我的// Array of data for the TableView
var details = [ProjectDetails]()
代码:
TableView
如何进行排序以及将代码放在哪里func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return details.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell
cell.textLabel!.text = details[indexPath.row]
return cell
}
或ViewDidLoad()
?
更新:
我的cellForRowAtIndexPath
:
ViewDidLoad()
更新2 :
我override func viewDidLoad() {
super.viewDidLoad()
// TableView Sorting
details.sortInPlace({$0.cellOrder < $1.cellOrder})
tableView.delegate = self
...
}
ProjectDetails
的{{1}}数据是:
class
答案 0 :(得分:3)
要对数组进行排序
details.sortInPlace({$0.cellOrder < $1.cellOrder})
在viewDidLoad中,或者您可以使用
details.sort({$0.cellOrder < $1.cellOrder})[indexPath.row]
在cellForRowAtIndexPath中,如果你不跟踪你的数组,这可能会很危险。
将对数组进行排序,一个将返回一个已排序的不可变数组。
如果你坚持不可分类地排序(超出这个范围有它的优点和缺点)将它分配给另一个数组并在你的逻辑中使用它。
答案 1 :(得分:1)
您必须对此数组details[]
中的itens进行排序,之后,您可以调用tableView.reloadData()
重新加载信息。
在cellForRowAtIndexPath
中,你必须把数据填入单元格,所以没有那里的东西!
在调用函数重新加载之前,在其他任何地方排序。