Создать пользовательский UITableViewCell
, скажем, это ListTableCell
class ListTableCell: UITableViewCell {
@IBOutlet weak var lblTemp: UILabel!
@IBOutlet weak var imgTemp: UIImage!
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
}
}
Я создал UITableViewCell
с xib
, как это и связать IBOutlets
Допустим, у нас есть struct Model
и array
вот так
struct Model {
let image : UIImage
let name: String
}
for i in 0...10 {
let model = Model(image: #imageLiteral(resourceName: "Cat03"), name: "Temp \(i)")
array.append(model)
}
Теперь метод ViewController
viewDidLoad()
,
tableView.register(UINib(nibName: "ListTableCell", bundle: nil), forCellReuseIdentifier: "ListTableCell")
Реализация UITableViewDataSource
таких методов, как
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return array.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ListTableCell") as! ListTableCell
let model = array[indexPath.row]
cell.lblTemp.text = model.name
cell.imgTemp.image = model.image
return cell
}
FYI
Для разных табличных представлений вы можете создать разные пользовательские ячейки одинаково и cellForRowAt indexPath
и numberOfRowsInSection
метод будет изменен соответствующим образом.
Сообщите мне в случае любых запросов.
ОБНОВЛЕНИЕ
Следуйте это и это для программного создания CustomTableCell