gpt4 book ai didi

ios - TableView 单元格再次显示

转载 作者:行者123 更新时间:2023-11-30 13:09:32 24 4
gpt4 key购买 nike

我遇到一个问题,如果我的 TableView 向下滚动得足够多,它将重复 TableView 上的第一个元素。老实说,我不知道为什么要这样做,我唯一的猜测是我需要以某种方式读取该单元格以前是否存在,但在我看过的教程中,他们实际上并没有这个问题。当实现 cellForRowAtIndex 路径方法时,它只是起作用并且不会重复单元格。

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

let cellIdentifier = "chatbubbleCell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! ChatBubbleCell

/* Configure the cell */
var yAxis: CGFloat = 5.0
// Setup the chat bubble view
if outgoingSender {
let outgoingChatBubbleData = ChatBubbleData(text: messagesArray[indexPath.row], image: nil, profileImage: UIImage(named: "chatIcon"), date: NSDate(), type: .Mine)
let outgoingChatBubble = ChatBubble(data: outgoingChatBubbleData, startY: yAxis)
cell.contentView.addSubview(outgoingChatBubble)
} else {
let incomingChatBubbleData = ChatBubbleData(text: messagesArray[indexPath.row], image: nil, profileImage: UIImage(named: "chatIcon"), date: NSDate(), type: .Opponent)
var incomingChatBubble = ChatBubble(data: incomingChatBubbleData, startY: yAxis)
cell.contentView.addSubview(incomingChatBubble)
}

return cell
}

正如您所看到的,我所做的就是检查传入的消息是传出还是传入,然后初始化一个包含标签的自定义 View ,然后将其添加到单元格的内容 View 中。

如有任何帮助,我们将不胜感激,谢谢。

--保罗在下面告诉我们,细胞正在被重复使用,这就是为什么它显示相同的细胞。因此,我将单元逻辑放入原型(prototype)单元类中,如下所示

   let outgoingChatBubbleData = ChatBubbleData(text: "", image: nil, profileImage: UIImage(named: "chatIcon"), date: NSDate(), type: .Mine)
let incomingChatBubbleData = ChatBubbleData(text: "", image: nil, profileImage: UIImage(named: "chatIcon"), date: NSDate(), type: .Opponent)

然后在cellForRowAtIndexPath中设置其属性

if outgoingSender {
cell.outgoingChatBubbleData.text = messagesArray[indexPath.row]
var incomingChatBubble = ChatBubble(data: cell.outgoingChatBubbleData, startY: yAxis)
// Attach to bubble view?
} else {
cell.incomingChatBubbleData.text = messagesArray[indexPath.row]
let outgoingChatBubble = ChatBubble(data: cell.incomingChatBubbleData, startY: yAxis)
// Attach to bubble view?
}

但现在我的问题是,我不确定如何将 UIView 类型的“ChatBubble”附加到单元格,而不在 cellForRowAtIndexPath 方法中使用 addSubview()

最佳答案

一种棘手的方法是在单元格初始化时添加 subview ,只需在 cellForRowAtIndexPath 中为 subview 设置 isHidden 属性即可。你可能会得到你想要的。

关于ios - TableView 单元格再次显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38884951/

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