我想要做的是让用户重新排序(不排序)UITableView中的项目。换句话说,更改每个项目输入的顺序,例如最常见的行为是显示在顶部的表格中输入的第一个项目,但用户可能希望在顶部看到最后一个项目而不是验证什么他/她进来了。
实现此行为的最常见逻辑是什么?
以下是我用来将数据输入表格的代码。
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{
@IBAction func enter(sender: AnyObject?) {
itemList.append(newItem)
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("reusableCell", forIndexPath: indexPath) as! CustomCell
let data = itemList[indexPath.row]
cell.displayPrice!.text = String(data.basePrice)
return cell
}
}
我知道如果用户重新订购表格,我可能需要更改插入项目的方式,例如......
var insertAtTop = false
@IBAction func enter(sender: AnyObject?) {
if insertAtTop{
itemList.insert(newItem, atIndex: 0)
}else{
itemList.append(newItem)
}
}
现在它会将项目插入顶部,但当然,这并不会对数组itemList
中的项目进行重新排序。
有人做过这样的事吗?
我想我可以只有一个Insert At Top
选项并清除表格以开始新的但用户会丢失已输入的任何项目。
答案 0 :(得分:1)
如果要允许用户按时间顺序对表中显示的数据进行排序,最好将时间戳(例如NSDate().timeIntervalSince1970
)与表中的每个数据一起保存,然后{{1通过升序或降序时间戳值来表示数据源数组。
filter