我想问你的是“一个UITableviewcell
是否可以用于多个tableview
,例如可以随时用于android中的recyclerview的viewholder?” do是在一个viewcontroller
中,我有一个带有自定义单元格的tableview
,并给了它正常的标识符,但是如果我试图在另一个uitableview
中使用另一个Viewcontroller
在上一个表格视图中,它总是给我一个带有白色背景的空白单元格。有没有办法像那样使用它?
编辑:这是我已经为其设置了cellforrow时的表格视图。 Click to view,这是我的单元格Click to view cell,这是我在表格视图中不同单元格的代码,如果我在当前表格视图中使用那两个单元格,它将起作用
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.section == 0{
let cell = self.mytable.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! HistoryItemTableCell
let view = UIView(frame: CGRect(x: 0, y: cell.frame.maxY, width: cell.frame.size.width, height: cell.frame.size.height))
view.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.3)
cell.selectedBackgroundView = view
let order = OrderItemObj
cell.num_of_day.text = "\(order.ticket_type.name)"
cell.ref_num.text = order.order_tx_number
cell.quantity.text = order.number_tickets
cell.price.text = "$\(order.ticket_type.price).00 USD"
if order.status == "unpaid"{
cell.ic_status.image = UIImage(named: "ic_status_unpaid")
}else{
cell.ic_status.image = UIImage(named: "ic_status_paid")
}
cell.start_date.text = "\(order.start_date)"
cell.end_date.text = "\(order.expired_date)"
return cell
}else{
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! OrderDetailTicketCell
let t = listTicket[indexPath.row]
cell.dob.text = t.dob
cell.gender.text = t.sex
cell.nation.text = t.nationality
let url = URL(string: t.photo)
cell.imageN.kf.setImage(with: url)
return cell
}
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 0 {
return 3
}else{
return self.listTicket.count
}
}
override func viewDidLoad(){
super.viewDidLoad()
mytable.register(HistoryItemTableCell.self, forCellReuseIdentifier: "cell")
ViewHistoryItem()
mytable.dataSource = self
mytable.delegate = self
}
答案 0 :(得分:3)
是可以。您必须为新的tableView
重新注册。就像您使用相同类型创建变量一样。这也是可用于创建对象的类。不管您在哪里使用它。
另一方面,如果您要询问tableView
中存在的同一单元格的实例是否可以在另一个tableView
中重用,那么答案是< strong>否,因为它们仅针对该特定tableView
注册。