我有一个UITableView,它作为一个例子包含我根据数组内容创建的动态单元格。
我可以使用数组和indexPath的计数来填充这些数据,以便为每个项目渲染一个单元格。我对此很满意并且效果很好。
我想现在尝试以编程方式创建静态单元格。
然而我立即感到难过,我该如何创造呢?我目前正在覆盖numberOfRowsInSection
和cellForRowAt indexPath
,如下所示:
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cellID", for: indexPath) as! ProfileCell
cell.rowContent.text = items[indexPath.row]
return cell
}
我怀疑我的第一个错误是dequeueReusableCell
并且真的很感激任何帮助。
答案 0 :(得分:1)
如果我理解你的问题,你想在包含动态单元格的tableView中添加一个静态单元格。
如果是这种情况,你可以硬编码,增加返回值:
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count+1
}
在这种情况下,您只想添加一个静态单元格。
在cellForRowAtIndexPath中,您应该定义要添加此静态单元格的位置。在下面的示例中,它将是第一个单元格:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.row == 0 {
//should change StaticCell to the static cell class you want to use.
let cell = tableView.dequeueReusableCell(withIdentifier: "staticCell", for: indexPath) as! StaticCell
//hardcore attributes here, like cell.rowContent.text = "A text"
return cell
}
let row = indexPath.row-1
let cell = tableView.dequeueReusableCell(withIdentifier: "cellID", for: indexPath) as! ProfileCell
cell.rowContent.text = items[row]
return cell
}
它基本上是根据你想要使用的静态单元格的数量来移动项目[row]。 我不确定这是否有效,但这是我的第一次猜测(根据我的经验)。试试这个并告诉我它是否有效:)