//
//  BaseDicTableViewDelegate.swift
//  MobilePortal
//
//  Created by xiejiangbo on 2020/1/20.
//  Copyright © 2020 yin chen. All rights reserved.
//

import UIKit

class BaseDicTableViewDelegate: NSObject,UITableViewDelegate,UITableViewDataSource,UIScrollViewDelegate {
    var dataSource: [String:AnyObject] = [:]
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let arr=self.dataSource[String(indexPath.section)] as! [String:AnyObject]
        let info:BaseCellModel=arr[String(indexPath.row)] as! BaseCellModel
        let cellClass=swiftClassFromString(info.className) as! BaseTableViewCell.Type
        let cell=getCell(tableView, cell: cellClass.self, indexPath: indexPath)
        cell.configurateTheCell(info)
        return cell
    }
    
    func numberOfSections(in tableView: UITableView) -> Int {
        return self.dataSource.count
    }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if !self.dataSource.keys.contains(String(section)) {
            return 0
        }
        let arr=self.dataSource[String(section)] as! [String:AnyObject]
        return arr.count
    }
    
    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
        return 1
    }
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        if (section==0){
            return 15
        }
        return 10
    }
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 44
    }
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        
        tableView.deselectRow(at: indexPath, animated: true)
    }
    func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { //ios8
        //        tableView.tableFooterView = UIView(frame: CGRect.zero)
        //        if cell.responds(to: #selector(setter: UITableViewCell.separatorInset))
        //        {
        //            cell.separatorInset = UIEdgeInsets.zero
        //            tableView.separatorInset = UIEdgeInsets.zero //cell.separatorInset.left = 5
        //        }
        //        if cell.responds(to: #selector(setter: UIView.layoutMargins)){
        //            cell.layoutMargins = UIEdgeInsets.zero
        //            tableView.layoutMargins = UIEdgeInsets.zero //cell.separatorInset.left = 5
        //        }
    }
    func tableView(_ tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) {
        //view.backgroundColor = UIColor.clear
        //view.backgroundColor = UIColor.clear
    }
    func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
        //view.tintColor = UIColor.clear
    }
}
