【发布时间】:2014-12-16 05:35:49
【问题描述】:
我是 iOS 编程新手,我使用的语言是 Xcode 6.0.1 中的 Swift。我目前正在我的应用程序中实现聊天功能。我已经使用网络套接字从服务器发送/接收消息,它工作正常。我遇到的问题是显示发送/接收的消息。
我创建了一个带有表格视图、文本字段和按钮的 UIViewController 来发送消息。我已经应用了所有必要的约束来适应自动布局,并实现了所需的委托。每次用户发送/接收消息时,都会在数据源(字符串数组)中添加一个新的消息字符串,然后我调用:
self.tableView.reloadData
表格由自定义单元格组成,在视图中带有图像和标签。一些发送/接收工作正常,但一段时间后,表格视图混乱,只保留自定义单元格内的图像,如图所示
这是我的 cellForRowAtIndexPath 代码:
func tableView(tableView: UITableView,cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
var cell: customMessageCell = self.tableView.dequeueReusableCellWithIdentifier(cellIdentifier ,forIndexPath: indexPath) as customMessageCell
if(messages[indexPath.row].contains("Fiona")){
cell.myAvatar.hidden = true
cell.myMessage.hidden = true
cell.myMessageBubble.hidden = true
cell.yourMessage.text = messages[indexPath.row]
cell.yourAvatar.hidden = false
}else{
cell.yourAvatar.hidden = true
cell.yourMessage.hidden = true
cell.yourMessageBubble.hidden = true
cell.myMessage.text = messages[indexPath.row]
cell.myAvatar.hidden = false
}
cell.selectionStyle = UITableViewCellSelectionStyle.None
return cell
}
我检查了消息数组实际上是递增的,但是当我在表视图中重新加载数据时,问题就出现了。我该如何解决?这是在表中插入新单元格而不是(添加到数据源+表重新加载)的更好方法吗?谢谢!
【问题讨论】:
-
请出示您的代码 - 特别是
cellForRowAtIndexPath -
这里的问题是,当您滚动时,值会在每个滚动条上隐藏或显示
标签: ios iphone uitableview swift xcode6