是否可以禁用除了swift 2.2中所选行之外的tableviewCell行滑动功能?

时间:2016-08-05 05:10:05

标签: ios swift xcode tableviewcell

假设在表视图单元格中有10行,如果滑动任何一行,则在编辑操作字段上按下后变为可编辑,并且应禁用剩余的行滑动。

func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]?
{

     /*to perform edit action on row*/
    let edit = UITableViewRowAction(style: UITableViewRowActionStyle.Normal, title: "Edit"){(UITableViewRowAction,NSIndexPath) -> Void in


    let cell:SuppliersCutomTableViewCell = tableView.cellForRowAtIndexPath(indexPath) as! SuppliersCutomTableViewCell
        print("indexPath",indexPath)
/*making Field Editable method*/
     cell.textFieldedit()

    }

    edit.backgroundColor = UIColor(red: 0.298, green: 0.851, blue: 0.3922, alpha: 1.0);

    return [edit]
}

2 个答案:

答案 0 :(得分:3)

您可以使用canEditRowAtIndexPath UITableViewDataSource方法,首先在Bool实例上声明并在UITableViewDataSource方法中使用此方法。

var allowEdit: Bool = true

func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
    return allowEdit
}

func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]?
{

    /*to perform edit action on row*/
    let edit = UITableViewRowAction(style: UITableViewRowActionStyle.Normal, title: "Edit"){(UITableViewRowAction,NSIndexPath) -> Void in


        let cell:SuppliersCutomTableViewCell = tableView.cellForRowAtIndexPath(indexPath) as! SuppliersCutomTableViewCell
        print("indexPath",indexPath)
        /*making Field Editable method*/
        cell.textFieldedit()
        self.allowEdit = false
    }

    edit.backgroundColor = UIColor(red: 0.298, green: 0.851, blue: 0.3922, alpha: 1.0);

    return [edit]
}

注意:当您为该单元格进行编辑时,请不要忘记将self.allowEdit设置为true

答案 1 :(得分:1)

使用tableView:canEditRowAtIndexPath:的{​​{1}}方法,并根据要求返回Bool。

UITableView