使用 MVVM 模式对 UITableview 进行松绑
ViewController.swift
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
TableView.swift
class TableView: UITableView {
var VM = TableViewModel()
override func awakeFromNib() {
self.tableFooterView = UIView() //清除多余线条
VM.target = self
self.delegate = VM
self.dataSource = VM
}
}
TableViewModel.swift
class TableViewModel: NSObject, UITableViewDataSource, UITableViewDelegate {
weak var target: TableView!
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 100
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
return cell
}
}
如使用 Storyboard 自定义cell,需要绑定TableView的类和设置cell的标识符