美文网首页
关于UITableViewCell编辑模式的小坑

关于UITableViewCell编辑模式的小坑

作者: 806349745123 | 来源:发表于2016-08-01 14:19 被阅读581次

    当我们使用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
    

    相关文章

      网友评论

          本文标题:关于UITableViewCell编辑模式的小坑

          本文链接:https://www.haomeiwen.com/subject/npixsttx.html