从xib创建自定义tableViewCell可以通过以下步骤实现:
class CustomTableViewCell: UITableViewCell {
// 添加自定义的UI元素
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
commonInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
private func commonInit() {
// 从xib文件加载自定义的tableViewCell
let nib = UINib(nibName: "CustomTableViewCell", bundle: nil)
if let contentView = nib.instantiate(withOwner: self, options: nil).first as? UIView {
addSubview(contentView)
contentView.translatesAutoresizingMaskIntoConstraints = false
contentView.topAnchor.constraint(equalTo: topAnchor).isActive = true
contentView.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
contentView.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true
contentView.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
}
}
}
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// 注册自定义的tableViewCell类
tableView.register(CustomTableViewCell.self, forCellReuseIdentifier: "CustomCell")
// 设置tableView的dataSource和delegate
tableView.dataSource = self
tableView.delegate = self
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as! CustomTableViewCell
// 配置自定义的tableViewCell
return cell
}
}
通过以上步骤,你可以从xib文件创建自定义的tableViewCell,并在UITableView中使用它。
领取专属 10元无门槛券
手把手带您无忧上云