在IOS中,在“编辑模式”下,如何向静态UITableView添加带有单元格的新部分?

时间:2014-10-13 18:01:23

标签: ios uitableview swift

看来我已经走到了尽头,试图解决这个问题。

我正在开发一个包含静态UITableView的应用程序,其中包含3个部分,每个部分包含一个单元格。每个单元格包含一个UITextField。在导航栏上,我有一个编辑按钮,一旦单击,UITextFields就会启用 - 允许用户修改文本。

我想知道是否有人可以引导我朝着正确的方向前进。我想在一个单元格中添加一个额外的部分,其中包含一个“删除”按钮。

我能找到的最好的例子是我在尝试做的是在“联系人”应用中。请注意,这里没有删除按钮。Regular view, no delete button

启用编辑模式后,会添加一个带有单元格的额外部分,其中包含一个删除按钮。 edit mode, delete button appears

我已经设置了代码,通过覆盖setEditing方法来启用编辑模式。

override func setEditing(editing: Bool, animated: Bool) {

    super.setEditing(editing, animated: animated)

    if editing {
        // enable textfields
    }
    else {
       // disable textfields 
       // save data
    }

提前致谢! :)

1 个答案:

答案 0 :(得分:2)

启用或禁用编辑时,请重新加载表格视图:

self.tableView!.reloadData()

从那里,您可以返回一些不同的值,具体取决于您是否正在编辑。以下是一些例子:

func numberOfSectionsInTableView(tableView: UITableView) -> Int {

    var sectionCount = 1
    if tableView.editing {

        sectionCount += 1

    }
    return sectionCount

}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    let lastSection = 1
    if section == lastSection {

        return 1

    }
    return 5

}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let lastSection = 1
    if (indexPath.section == lastSection) {

        // return the special delete cell

    } else {

        // return other cells

    }

}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    let lastSection = 1
    if (indexPath.section == lastSection) {

        // handle delete cell

    } else {

        // handle other cells

    }

}