当我们使用tableView的进入编辑模式的时候,我们可以在下面的函数的返回值来修改cell到底要显示哪一种显示模式:
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
其中UITableViewCellEditingStyle是枚举:
typedef NS_ENUM(NSInteger, UITableViewCellEditingStyle) {
UITableViewCellEditingStyleNone,
UITableViewCellEditingStyleDelete,
UITableViewCellEditingStyleInsert
};
返回UITableViewCellEditingStyleDelete效果如下
![](https://img.haomeiwen.com/i1433064/134c855fd6171d1b.png)
返回UITableViewCellEditingStyleInsert效果如下
![](https://img.haomeiwen.com/i1433064/d9e1daf2a4835fd8.png)
但是如果我们想要带复选框的编辑模式(如下图)该如何做呢
![](https://img.haomeiwen.com/i1433064/c736be870efcdef3.png)
在OC中可以编写代码来实现
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;
}
那么问题来了,若我们是用swift重写同样的代码
override func tableView(tableView: UITableView, editingStyleForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCellEditingStyle {
return (UITableViewCellEditingStyle.Insert | UITableViewCellEditingStyle.Delete)
}
如果这样写的话,编译器会报错,如何解决这种语法的问题还没搞懂 - -!
临时解决办法:
1、用StoryBoard,对TableView设置如下图,红色框选区域为需要修改的地方
![](https://img.haomeiwen.com/i1433064/f21c90e952d90d6a.png)
2、将tabView返回UITableViewCellEditingStyle的delegate方法交给用OC编写(无奈选择)
3、设置tabVlew的allowsMultipleSelectionDuringEditing属性
self.tableView.allowsMultipleSelectionDuringEditing = true
网友评论