【发布时间】:2018-08-19 10:41:00
【问题描述】:
我的tableview有3层
第一个:标题
第二个:部分
第三个:xibviews
我的 tableviewCell 加载 Xibs 视图依赖于 indexPath.row
例如 indexPath.row 在 2 ,我想加载 CDFlightXibView
但是滚动时它太慢
我该怎么办?
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
switch indexPath.section {
case 0:
print("contract detail")
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
let vieww = Bundle.main.loadNibNamed("CDContractXibView", owner: self, options: nil)?.first as? CDContractXibFile
vieww?.fillData()
cell.contentView.addSubview(vieww!)
vieww?.frame = cell.contentView.frame
vieww?.center = cell.contentView.center
return cell
case 1:
print("passenger")
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
let vieww = Bundle.main.loadNibNamed("CDPassengerInFlightXibView", owner: self, options: nil)?.first as? CDPassengerInFlightXibFile
vieww?.fillData()
cell.contentView.addSubview(vieww!)
vieww?.frame = cell.contentView.frame
vieww?.center = cell.contentView.center
return cell
case 2:
print("flight")
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
let vieww = Bundle.main.loadNibNamed("CDFlightXibView", owner: self, options: nil)?.first as? CDFlightXibFile
vieww?.fillData()
vieww?.detailBtn.addTarget(self, action: #selector(showPassenger(_:)), for: .touchUpInside)
vieww?.detailBtn.tag = indexPath.row
cell.contentView.addSubview(vieww!)
vieww?.frame = cell.contentView.frame
vieww?.center = cell.contentView.center
return cell
default:
print("nothing")
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
return cell
}
【问题讨论】:
标签: swift uitableview tableview xib custom-cell