Swift 使用xib自定义UITableViewCell

本文介绍了如何通过XIB文件自定义UITableViewCell,并展示了具体的实现步骤。包括创建XIB文件、设置自定义Cell类、在Storyboard中配置TableView以及加载和显示自定义Cell等内容。
摘要由CSDN通过智能技术生成

使用xib自定义tableviewCell看一下效果图

在这里插入图片描述
1.自定义列
新建一个xib文件 carTblCell,拖放一个UITableViewCell,再拖放一个图片和一个文本框到tableviewcell上
在这里插入图片描述
并给我们的xib一个标识

在这里插入图片描述
为了学习,我这里的xib和后台的class是分开建的。我们再建一个cocoa touch class文件名称为CarCellTableViewCell继承自UITableViewCell
并把我们的xib和新建的CarCellTableViewCell建立联接
在这里插入图片描述
在CarCellTableViewCell里建立和xib的图片和文本框的输出

import UIKit
 
class CarCellTableViewCell: UITableViewCell {
 
    @IBOutlet weak var cellImg: UIImageView!
 
    @IBOutlet weak var lbCell: UILabel!
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
        cellImg.layer.borderWidth = 1
        cellImg.layer.masksToBounds = true
        //cellImg.layer.cornerRadius = 31
    }
 
    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
 
        // Configure the view for the selected state
    }
 
}

2.关联cell和tableview

  1. 在main.storyboard上拖放一个uitableview,并在后台代码建立输出联接
    在这里插入图片描述

1.在load事件里注册xib

2.在tableveiw的方法里得到当前的列,指定数据源。

import UIKit
 
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
 
    @IBOutlet var tableView: UITableView!
    var tableData: [String] = ["BMW", "Ferrari", "Lambo"]
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        // 此处注册cell
        let cellNib = UINib(nibName: "carTblCell", bundle: nil)
        tableView.registerNib(cellNib, forCellReuseIdentifier: "cell")
        tableview.rowHeight=120
    }
 
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
 
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
         return tableData.count
    }
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell: CarCellTableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as! CarCellTableViewCell
        cell.lbCell.text = tableData[indexPath.row]
        cell.cellImg.image = UIImage(named: tableData[indexPath.row])
        
        return cell
    }
    
    func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
        print("\(indexPath.row)")
    }
    
    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        return 70
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值