iOS开发 MVVM模式下的Tableview松绑

使用 MVVM 模式对 UITableview 进行松绑

MVVM

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的标识符

SB
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 你是我的爱人,也是我的情人 我们初遇在丽江古城的桥边 那晚星光璀璨夜色撩人 你一头黑色长发微扬 袅袅婷婷立在那旁 ...
    白馥阅读 2,976评论 4 6
  • 今天突然回想起来,自己半年前参加的一个大数据入门培训(作为运营部门的人,是一定要时不时充实自己的水平的!)。当时有...
    很咸的鱼阅读 4,594评论 2 2
  • 09年的圣诞节,我在准备考研。 晚上十点,D来接我下自习。 他说:马上要考试了呀,你要加油,以后我们再庆祝。 心里...
    我不是任何人阅读 1,445评论 2 1

友情链接更多精彩内容