关于UITableViewCell编辑模式的小坑

2016-08-01  本文已影响581人  806349745123

当我们使用tableView的进入编辑模式的时候,我们可以在下面的函数的返回值来修改cell到底要显示哪一种显示模式:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath

其中UITableViewCellEditingStyle是枚举:

typedef NS_ENUM(NSInteger, UITableViewCellEditingStyle) {
    UITableViewCellEditingStyleNone,
    UITableViewCellEditingStyleDelete,
    UITableViewCellEditingStyleInsert
};

返回UITableViewCellEditingStyleDelete效果如下


Paste_Image.png

返回UITableViewCellEditingStyleInsert效果如下


Paste_Image.png

但是如果我们想要带复选框的编辑模式(如下图)该如何做呢


Paste_Image.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设置如下图,红色框选区域为需要修改的地方


Paste_Image.png

2、将tabView返回UITableViewCellEditingStyle的delegate方法交给用OC编写(无奈选择)

3、设置tabVlew的allowsMultipleSelectionDuringEditing属性

self.tableView.allowsMultipleSelectionDuringEditing = true
上一篇下一篇

猜你喜欢

热点阅读