使用xib自定義tableviewCell看一下效果圖
1.自定義列
新建一個xib文件 carTblCell,拖放一個UITableViewCell,再拖放一個圖片和一個文本框到tableviewcell上
并給我們的xib一個標識
為了學習,我這里的xib和后臺的class是分開建的。我們再建一個cocoa touch class文件名稱為CarCellTableViewCell繼承自UITableViewCell
并把我們的xib和新建的CarCellTableViewCell建立聯接
?
在CarCellTableViewCell里建立和xib的圖片和文本框的輸出
import UIKitclass CarCellTableViewCell: UITableViewCell {@IBOutlet weak var cellImg: UIImageView!@IBOutlet weak var lbCell: UILabel!override func awakeFromNib() {super.awakeFromNib()// Initialization codecellImg.layer.borderWidth = 1cellImg.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 UIKitclass 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.let cellNib = UINib(nibName: "carTblCell", bundle: nil)tableView.registerNib(cellNib, forCellReuseIdentifier: "cell")}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! CarCellTableViewCellcell.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} }