在UITableView中,用户还可以通过左滑Cell来完成一些简单的编辑操作。而对于开发者来说,需要关心dataSource中的两个方法:
以及delegate中的一个方法:
tableView(_:canEditRowAt:)要求数据源验证给定行是否可以编辑。该方法允许数据源排除某些不可编辑的行,可以编辑的行在其Cell中显示插入或删除按钮。如果未实现此方法,则假定所有行都是可编辑的,不可编辑的行忽略UITableViewCell实例的editingStyle属性,并且不对删除或插入按钮进行缩进。
tableView(_:editingStyleForRowAt :)可以控制每一个Cell的editingStyle。如果一个行可以编辑,但又不希望显示插入或删除按钮,则可以从这个委托方法中返回UITableViewCell.EditingStyle.none。如果想指定某个编辑按钮也可以从tableView(_:editingStyleForRowAt :)返回相应的editingStyle。
tableView(_:commit:forRowAt:)要求数据源提交插入或删除指定行。当用户在UITableView中点击与UITableViewCell实例关联的插入按钮或左滑的删除按钮时,UITableView会调用数据源的这个方法,要求其提交更改。如果用户点击左侧删除的按钮(红色减号),UITableView将显示左滑的删除按钮以获得确认。数据源通过调用UITableView方法insertRows(at:with:)或deleteRows(at:with:)来提交插入或删除。
实现了这三个方法之后,UITableView就可以进行简单的编辑操作了。创建工程UITableView EditPractise,在UITableViewPractise的基础上在View Controller增加三个方法的实现,代码如下:(www.xing528.com)
动手写13.5.1 UITableViewEditPractise->ViewController.swift
运行模拟器,对Cell进行左滑操作将会展示图13.5.1的界面:
图13.5.1 左滑删除
此时点击删除按钮,控制台将会打印出:
真实情况下,开发者接收到编辑确认的回调之后,需要改动被编辑Cell对应的数据源并且进行页面刷新。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。