我正在尝试在表格视图中构建两个(或更多)自定义单元格,并且每个单元格都没有自定义类,我使用故事板进行单元格原型设计,tableView.dequeueReusableCell(withIdentifier: "customCellName", for: indexPath)
从{{1}创建不同的单元格方法。
我需要高度不同于单元格类型2的单元格类型1,但如果尝试使用cellForRowAt
单元格类型2未正确显示。
我尝试构建一个“虚拟项目”来理解正确的方法,这里是我的代码:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
在ViewDidLoad中:
var cell = self.tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
let value = dataArray[indexPath.row]
if (value == "second") || (value == "Hawaii") {
cell = self.tableView.dequeueReusableCell(withIdentifier: "cellTwo", for: indexPath)
}
let lbl = cell.viewWithTag(100) as! UILabel
lbl.text = dataArray[indexPath.row]
return cell
结果如下:
每个尺寸相同的细胞都不适合我。
答案 0 :(得分:0)
如果要创建自定义单元格外观,则必须创建UITableViewCell
的子类 - 有一些great tutorials on how to do that。
然后,您必须注册自定义单元格,以便UITableView
了解它。请参阅register(_:forCellReuseIdentifier:)
方法。
在tableView(_:heightForRowAt:)
中,您可以编写以下代码以确定特定单元格的高度:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
let value = dataArray[indexPath.row]
if (value == "second") || (value == "Hawaii") {
return 180.0
} else {
return 40.0
}
}