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<TCategory>(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)")
}