关于UITableViewCell编辑模式的小坑

当我们使用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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容