自定义cell
import UIKit
class TableViewCell: UITableViewCell {
var imgView: UIImageView!
var nameLabel: UILabel!
var contentLabel: UILabel!
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
//一个类A如果有自己独有的初始化方法,自定义类B的时候如果B继承自A。此时就重写A类独有的初始化方法
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
self.selectionStyle = UITableViewCell.SelectionStyle.none
self.createCellUI()
}
func createCellUI() {
self.imgView = UIImageView.init(frame: CGRect(x: 10, y: 10, width: 60, height: 60))
self.imgView.backgroundColor = .lightGray
self.contentView.addSubview(self.imgView)
self.nameLabel = UILabel.init(frame: CGRect(x: 80, y: 10, width: self.contentView.frame.size.width - 90, height: 30))
self.nameLabel?.text = "标题"
self.contentView.addSubview(self.nameLabel)
self.contentLabel = UILabel.init(frame: CGRect(x: 80, y: 45, width: self.contentView.frame.size.width - 90, height: 30))
self.contentLabel?.text = "内容"
self.contentView.addSubview(self.contentLabel)
}
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
创建tableView
import UIKit
class TableViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {
let cell_identifier:String = "FirstCustomTableCell"
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(self.tableView)
}
//分几组
func numberOfSections(in tableView: UITableView) -> Int {
return 5
}
//每组中的个数
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
//cell中要显示的内容
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
//根据重用标识区出来的cell要转为注册的cell类型,才能 点 出来他的属性
let cell = tableView.dequeueReusableCell(withIdentifier: cell_identifier, for: indexPath) as! TableViewCell
cell.contentLabel.text = String(format: "第%d组 第%d行",indexPath.section,indexPath.row)
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 80
}
// MARK:懒加载
lazy var tableView: UITableView = {
self.tableView = UITableView.init(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height - 64), style: .grouped)
self.tableView.delegate = self
self.tableView.dataSource = self
self.tableView.register(TableViewCell.self, forCellReuseIdentifier: cell_identifier)
self.tableView.tableHeaderView = UIView.init(frame: CGRect(x: 0, y: 0, width: 0, height: CGFloat.leastNormalMagnitude))
self.tableView.sectionHeaderHeight = 0;
self.tableView.sectionFooterHeight = 10
return self.tableView
}()
}
运行效果