gpt4 book ai didi

ios - 使用超过 1 个 Prototype Cell 时 UITableView 的奇怪行为

转载 作者:行者123 更新时间:2023-11-28 05:31:09 24 4
gpt4 key购买 nike

所以我有一个 UITableView,我计划在其中使用 2 个原型(prototype)单元格。我们称它们为单元格 A 和单元格 B。单元格 A 有自己的布局,单元格 B 有自己的布局。

事情是这样的,在只有 1 个原型(prototype)单元格的典型 UITableView 实现中,在设置所有单元格及其属性后,cellForRowAtIndexPath 负责根据 numberOfRowsInSection 中的 (x) 个项目填充所有行。

这是我遇到问题的地方。我已经在我的 UITableView 中实现了我的原型(prototype)单元格,当我运行它时,我注意到 cellForRowAtIndexPath 只被调用了两次,即使我在 (x) 个项目中有一个值大于 2。不管是什么我将它设置为,它只被调用两次。我已经有了必要的 if 语句来根据单元格索引等选择单元格原型(prototype)……所以这不是问题。问题是 cellForRowAtIndexPath 只是被调用了两次,而不是遍历所有项目。

为什么会这样,我该如何解决?

这是我的 DataSource 方法代码:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

return 8

}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

Scripts.log("Data Count = \(indexPath.row)")

if indexPath.row == 0{

var cell: ContactDetailImageCell = tableView.dequeueReusableCellWithIdentifier(NAME_OF_CUSTOM_IMAGE_CELL) as ContactDetailImageCell

cell.cardPhoto.image = aContact.profilePicture
cell.fullName.text = aContact.getDisplayName()
cell.workplace.text = aContact.workplace

return cell

}
else{

var cell: ContactDetailPhoneNumCell = tableView.dequeueReusableCellWithIdentifier(NAME_OF_CUSTOM_PHONE_CELL) as ContactDetailPhoneNumCell

return cell

}

return UITableViewCell()

}

最佳答案

您的单元格高度是多少? cellForRowAtIndexPath 只有在表认为需要显示单元格时才会被调用。因此整个重用机制。因此,如果您有 8 个单元格并且它认为 2 个单元格填满了屏幕,那么在您向上/向下滚动之前它不会再要求任何内容。

您要为 heightForRowAtIndexPath 返回什么。

关于ios - 使用超过 1 个 Prototype Cell 时 UITableView 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28288678/

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