在选择时将行移到表格的底部?

时间:2017-03-14 06:05:45

标签: ios swift

我喜欢将行移至bottom的{​​{1}}和table我喜欢它以便在我再次访问屏幕时看到我的更改,如果{{ 1}}。我做了以下但是行没有移动

persist

如何解决此问题?

3 个答案:

答案 0 :(得分:0)

您正在滚动到IndexPath(row: 0, section: 0),这意味着第一部分的第一行,这意味着它将滚动到顶部。

如果您只有1个部分,请更改:

IndexPath(row: 0, section: 0)

进入

let numberOfRows  // How many rows you have?
IndexPath(row: numberOfRows - 1, section: 0)

如果您有多个部分和多个行,请改为:

let numberOfSections // How many sections you have
let numberOfRowsInLastSection = tableView.numberOfRows(inSection:numberOfSections-1)
IndexPath(row: numberOfRowsInLastSection-1, section: numberOfSections-1)

答案 1 :(得分:0)

tableView.scrollToRow(at: IndexPath(row: 0, section: 0), at: .bottom, animated: true)

不会移动单行,它会尝试以给定索引路径(0,0)的行位于给定位置(底部)的方式滚动整个表视图。

听起来你想重新排序细胞。为此,你必须:

  1. 调整您的数据模型。
  2. 重新加载整个表格(这不是动画)或致电
  3. 夫特:

    func moveRow(at indexPath: IndexPath, 
              to newIndexPath: IndexPath)
    

答案 2 :(得分:0)

如果您想移动行,则需要执行此操作。

override func tableView(tableView: UITableView, canMoveRowAtIndexPath indexPath: NSIndexPath) -> Bool {
      return true}

override func tableView(tableView: UITableView, moveRowAtIndexPath fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath) {
      var itemToMove = tableData[fromIndexPath.row]
      tableData.removeAtIndex(fromIndexPath.row)
      tableData.insert(itemToMove, atIndex: toIndexPath.row)
}