iOS中UITableView使用

1.在storyboard中将TableView放入VC中,再把Table Cell放入TableView中,再将显示控件放入Table Cell的ContentView中。
2.绑定TableView的dataSource和delegate到storyboard的Controller中,右箭头事件拖动
3.创建XxxTableCell类继承UITableViewCell,并与storyboard中的控件关联。再把storyboard中Cell中的控件和XxxTableCell进行绑定

import UIKit
class CategoryTableCell: UITableViewCell {
    @IBOutlet weak var name: UILabel!
}

4.设置TableCell的identifier为XxxCell
5.进入ViewController,继承UITableViewDelegate,UITableViewDataSource,把TableView绑定进来,实现两个tableView方法,设置tableView的dataSource,

class MainController: UIViewController,UITableViewDelegate,UITableViewDataSource {
    
    @IBOutlet weak var tableView: UITableView!
    
    var data:[Category] = []
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return data.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "categoryCell", for: indexPath) as! CategoryTableCell
        let category = data[indexPath.row]
        cell.name!.text = category.name!
        return cell
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.dataSource = self
    }
    
    override func viewDidAppear(_ animated: Bool) {
        self.loadDataFromDB()
    }
     //从数据库加载数据
    func loadDataFromDB() -> Void {
        //从数据库获取分类信息
        //请求参数
        let userId = AppDelegate.user?.id
        //获取管理的数据上下文对象
        let app = UIApplication.shared.delegate as! AppDelegate
        let context = app.persistentContainer.viewContext
        //构建查询条件
        let fetchRequest = NSFetchRequest(entityName: "TCategory")
        let predicate = NSPredicate(format: "parentId = 0 and userId = %@", NSNumber(value: userId!))
        fetchRequest.predicate = predicate
        do {
            //执行查询
            let fetchedObjects:[TCategory] = try context.fetch(fetchRequest)
            //操作查询结果
            for obj in fetchedObjects {
                var cat = Category()
                cat.id = obj.id
                cat.name = obj.name
                cat.orderNum = obj.orderNum
                cat.parentId = obj.parentId
                cat.updateTime = obj.updateTime
                cat.userId = obj.userId
                data.append(cat)
            }
            tableView.reloadData()
        } catch {
            print("查询失败")
        }
    }
}

6.刷新数据使用tableView.reloadData()
7.条目的点击事件:在ViewController中实现此方法

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
//        print("你点击了条目:\(indexPath.row)")    
}

图片可参考:https://www.jianshu.com/p/36a2762faa33

你可能感兴趣的:(iOS中UITableView使用)