gpt4 book ai didi

swift - 多个原型(prototype)电池的不同高度

转载 作者:行者123 更新时间:2023-11-30 10:43:30 27 4
gpt4 key购买 nike

有 2 个原型(prototype)电池。每个都需要不同的大小。所以我有 cell 和 cell1。 Cell 应该是 40,Cell 需要是 75。

我尝试使用 heightForRowAt - 发现它在 cellForRowAt 之前调用

我厌倦了在 Storyboard中为每个单元格设置高度

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "starshipCell", for: indexPath)
let cell1 = tableView.dequeueReusableCell(withIdentifier: "starshipCell1", for: indexPath) as! SectionTableViewCell

switch indexPath {
case [4,0]:
cell1.sectionLbl.text = "Armor".lowercased()
cell1.detailTextLabel?.text = "Test"
return cell1
case [4,1]:
cell.textLabel?.text = "Defensive Countermeasures"
return cell
case [4,2]:
cell.textLabel?.text = "Shields"
return cell
case [11, 0]:
cell.textLabel?.text = "Forward Arc"
return cell
case [11, 1]:
cell.textLabel?.text = "Port Arc"
return cell
case [11, 2]:
cell.textLabel?.text = "Starboard Arc"
return cell
case [11, 3]:
cell.textLabel?.text = "Aft Arc"
return cell
case [11, 4]:
cell.textLabel?.text = "Turret"
return cell
default:
return cell
}

// return cell
}

'尝试将同一索引路径的多个单元出队,这是不允许的。如果您确实需要出列比 TableView 请求的更多单元格,请使用 -dequeueReusableCellWithIdentifier: 方法(不带索引路径)。单元标识符:starshipCell1,索引路径:{length = 2, path = 0 - 0}'

所以上面的效果很完美。我只需要调整这些单元格的行高。现在代码还没有 100% 完成。以上所有情况都会更改并更新到cell1。仅当我使用 heightForRowAt 时才会出现错误

最佳答案

cellForRowAt 方法中,您只能出队并返回一个单元格。要在给定索引路径的情况下返回正确的路径,常见的做法更像是以下内容:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: UITableViewCell
if indexPath.row == 0 { // starshipCell only appears if it's the first row
cell = tableView.dequeueReusableCell(withIdentifier: "starshipCell", for: indexPath)
} else { // Otherwise, we use starshipCell1
cell = tableView.dequeueReusableCell(withIdentifier: "starshipCell1", for: indexPath) as! SectionTableViewCell
}

// Set up the cell here

return cell
}

这样,每个单元仅调用 dequeueReusableCell 一次。 (错误)heightForRowAt 应该类似地使用。

关于swift - 多个原型(prototype)电池的不同高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56310342/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com