gpt4 book ai didi

ios - 尽管使用 dequeueReusableCell,如何仅隐藏特定单元格上的内容?

转载 作者:行者123 更新时间:2023-11-29 02:12:41 27 4
gpt4 key购买 nike

当我们越过特定数量的行时,我想在自定义单元格中隐藏一些元素。我添加了比可见行更多的行,因为我需要滚动到没有弹跳效果的最后一行。但是现在我有更多的单元格,我不需要行 > 13 之后的单元格。

我尝试用 if else 设置需要显示单元格,但是 dequeue... 方法对单元格有不好的影响,当我向上滚动,返回到之前的单元格时,它们不再有文本,比如行 > 13。有没有办法使用 dequeue 方法,让行 < 13 的内容,并删除行 > 13 的内容?

这是一些代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var identifier = ""

if tableView == self.tableView{
identifier = "MyCell"
let cell = tableView.dequeueReusableCellWithIdentifier(identifier) as MyCell
if indexPath.row < 14 {
cell.showContent = true
cell.label.text = "test\(indexPath.row)"
}
else {
cell.showContent = false
cell.label.text = ""
cell.addItem.text = ""
}
cell.setNeedsDisplay()
return cell
}


//MyCell
override func drawRect(rect: CGRect) {
if !showContent {
label.text = ""
addItem.text = ""
}
else {
let path = UIBezierPath()//custom separator that should not be drawn for row > 13

谢谢

最佳答案

您不应该在 drawRect 中以这种方式修改文本。您已经修改了 cellForRow 中的标签。这就是您所需要的。

也就是说,我不会这样做。我可能会创建一个不同的单元格,它有自己的空单元格标识符。这样它们就可以非常简单,您不必执行 cell.setNeedsDisplay() 之类的操作来摆脱分隔线。所以在 cellForRow 中,只为数据行返回一种单元格,为空行返回另一种单元格。没有规则说所有单元格都必须属于同一类。

关于ios - 尽管使用 dequeueReusableCell,如何仅隐藏特定单元格上的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29111112/

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