您当前的位置: 首页 >  eureka

MultivaluedSection类在不同Eureka源中不同行为的分析和修正

发布时间:2018-10-01 19:02:03 ,浏览量:0

Eureka中含有MultivaluedSection类,用来实现Section的编辑功能,这里编辑是指:对Row的删除,排序和插入.

但是本猫发现Eureka在CocoaPods和GitHub中同样的4.2.0版本,其删除行为却不太相同,这可能对新手有所困惑,所以这里做一些解释,对自己和别人都有帮助.

这里所谓的删除行为不同是指:

  • CocoaPods 4.2.0:启用编辑模式后,点击Row头部的圆形删除按钮无反应
  • GitHub Demo 4.2.0:可以正常删除Row

在这里插入图片描述

为了测试,将Demo单独拎出来,然后重新和CocoaPods中的Eureka 4.2.0绑定,结果发现这时也无法触发删除功能.

所以应该是Eureka两个源中的实现有出入.

为了能够在CocoaPods的Eureka中实现删除功能,我们必须手动为每个Row创建删除动作:

for tag in nameList {
   section <<< TextRow {
        $0.placeholder = "Tag Name"
        $0.value = tag
       
        let deleteAction = SwipeAction(style: .destructive, title: "DEL"){action,row,completion in
            //Custom delete code...
            completion?(true)
        }
        $0.trailingSwipe.actions = [deleteAction]
    }
}

注意completion闭包会帮你处理界面上的删除(实参为true时),所以你只需处理定制的删除代码.

而对于GitHub中的4.2.0来说,你可以不用写任何删除动作就可以完成界面上的删除动作.不过如果我还要完成一些定制的删除代码呢?

这时我们可以通过重载以下方法来完成:

override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
    super.tableView(tableView, commit: editingStyle, forRowAt: indexPath)
    
    if editingStyle == .delete{
        //Custom delete code...
    }
}

至于Eureka两个源为什么对于删除行为有所不同,时间原因没有细究,感兴趣的童鞋可以仔细深入研究.

另外GitHub里Eureka 4.3.0已经放出,支持iOS 12和Swift 4.2,大家可以下载测试.

感谢观赏,国庆快乐 ?

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    107766博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0508s