1. 程式人生 > >Swift UITableViewCell點選展開

Swift UITableViewCell點選展開

在headview上增加點選事件

        let tap:UITapGestureRecognizer = UITapGestureRecognizer.init(target: self, action: #selector(headViewClick))
        view?.isUserInteractionEnabled = true
        view?.addGestureRecognizer(tap)
寫一個全域性的標識,點選之後切換展開、收起狀態,並重新整理對應section,新增展開收起動畫

    @objc func headViewClick() -> Void {
        if showAll {
            showAll = false
            
        }else{
            showAll = true
            
        }
        let set:IndexSet = IndexSet.init(integer: 0)
        tableView.reloadSections(set as IndexSet, with: UITableViewRowAnimation.fade)
    }

在返回rowd個數的方法里根據標識判斷,就完成了

 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if showAll {
            return 8
        }else{
            return 0
            
        }
        
    }

效果如下