本内容是基于swift5.0版本的UITableView的实现,话不都说上代码
//
// ViewController.swift
// textmodel
//
// Created by 袁灿 on 2021/7/30.
//
import UIKit
let LBFMScreenWidth = UIScreen.main.bounds.size.width
let LBFMScreenHeight = UIScreen.main.bounds.size.height
class ViewController: UIViewController {
private let ViewCellID = "ViewCell"
// 初始数据
private lazy var datalist: [String] = {
return ["标题1","标题2","标题3","标题4","标题5","标题6",]
}()
// 创建tableView
private lazy var tableView: UITableView = {
let tableView = UITableView.init(frame: CGRect(x: 0, y: 0, width: LBFMScreenWidth, height: LBFMScreenHeight), style: UITableView.Style.plain)
tableView.delegate = self
tableView.dataSource = self
tableView.backgroundColor = UIColor.white
// 注册cell
tableView.register(ViewCell.self, forCellReuseIdentifier: ViewCellID)
return tableView
}()
override func viewDidLoad() {
super.viewDidLoad()
//tableView 加载在 self.view上
self.view.addSubview(self.tableView)
}
}
// 实现tableView的代理 UITableViewDelegate, UITableViewDataSource
extension ViewController: UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.datalist.count
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 50
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: ViewCell = tableView.dequeueReusableCell(withIdentifier: ViewCellID, for: indexPath) as! ViewCell
cell.dataStr = self.datalist[indexPath.row] // 传值
return cell
}
}
//
// ViewCell.swift
// textmodel
//
// Created by 袁灿 on 2021/7/30.
//
import UIKit
class ViewCell: UITableViewCell {
// 创建标题
private lazy var titlelab: UILabel = {
let titlelab = UILabel.init(frame: CGRect(x: 10, y: 10, width: self.frame.size.width, height: self.frame.size.height))
titlelab.text = "标题"
titlelab.font = UIFont.systemFont(ofSize: 15)
return titlelab
}()
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
self.addSubview(self.titlelab)
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
// 数据传值,赋值
var dataStr: String? {
didSet {
self.titlelab.text = dataStr
}
}
}