美文网首页
小而美的Swift&iOS教程03-BasicListEdit

小而美的Swift&iOS教程03-BasicListEdit

作者: invisibleMike | 来源:发表于2017-05-05 11:09 被阅读0次
    BasicViewEdit.gif

    这个教程会涉及如下内容


    • 给TableView添加下拉刷新功能
    • 给TableView添加编辑编辑功能
    • 给TableView添加删除功能

    UIRefreshControl下拉刷新


    
    var refreshControl: UIRefrshControl! 
        
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
            refreshControl = UIRefreshControl()
            refreshControl.addTarget(self, action: #selector(refreshTable), for: .valueChanged)//添加响应目标函数
            animalsTableView.refreshControl = refreshControl
        }
    

    定义响应函数refreshTable()

    func refreshTable(){
            self.animalList = cloudAnimalList
            animalsTableView.reloadData()//重新加载列表
            refreshControl.endRefreshing() //停止刷新
        }
    

    实现编辑功能


    给navigationbar左上角添加edit按钮
    如果你是直接使用TableViewController,可以直接使用以下语句完成编辑功能

    self.navigationItem.leftBarButtonItem = self.editButtonItem
    

    如果TableView是在ViewController基础上实现的话
    需要在左上角edit按钮的action方法中添加如下代码

    @IBAction func touchButtonItem(_ sender: UIBarButtonItem) {
            if let title = sender.title{
                switch title{
                    case "Edit":
                        animalsTableView.setEditing(true, animated: true)
                        sender.title = "Done"
                    case "Done":
                        animalsTableView.setEditing(false, animated: true)
                        sender.title = "Edit"
                    default: break
                }
            
            }
        }
    
    实现删除功能

    在DataSource中实现以下方法设定每个cell在isEdit=true时所显示的状态
    状态有两种可选形式 一种是.delete另一种是.insert

        func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
            return UITableViewCellEditingStyle.delete
        }
    

    同时还要在Delegete中实现以下方法来响应点击

    
        func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
            if editingStyle == .delete{
                animalList.remove(at: indexPath.row)
                animalsTableView.deleteRows(at: [indexPath], with: .fade)
            }else if editingStyle == .insert {
                // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
            }
        }
    
    实现编辑功能

    在DataSource中实现如下方法,使得数组中的元素和tableview一致

    func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
            animalList.insert(animalList.remove(at: sourceIndexPath.row), at: destinationIndexPath.row)
        }
    

    这样我们就实现了刷新、删除、编辑的功能。

    相关文章

      网友评论

          本文标题:小而美的Swift&iOS教程03-BasicListEdit

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