因此,我在使用套接字io的情况下创建了一个聊天页面,我有2个标签用于传入和传出消息。
我有一个名为ChatText的变量,它将像这样存储内容:
[[“”嗨,你好吗?“,” 0“],[”我很好,你呢?“,” 1“]]
其中0 =已发送,1 =已接收
这样我就可以知道发送和接收的消息是哪一个,并将它们设置为标签并设置样式
我不知道这是否是正确的方法,我在互联网上搜索找不到太多的信息,所以我只是这样做,请告诉我它是否错误或告诉我如何解决此问题。
这是我到目前为止的代码,我认为问题一定是:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCellWithIdentifier("chatCell", forIndexPath: indexPath) as? TableChatCell
cell!.selectionStyle = UITableViewCellSelectionStyle.None
let ChatTextFixed = self.ChatText[indexPath.row] as NSArray
if ChatTextFixed.count > 0 {
if ChatTextFixed[1] as! Int == 0 {
cell!.ChatLableS.text = ChatTextFixed[0] as? String
cell!.RView.hidden = true
}
if ChatTextFixed[1] as! Int == 1 {
cell!.ChatLableR.text = ChatTextFixed[0] as? String
cell!.SView.hidden = true
}
print(ChatTextFixed)
}
cell!.ChatLableS.textColor = UIColor.whiteColor()
cell!.ChatLableR.textColor = UIColor.blackColor()
return cell!
}
注意:如果我删除这些If条件:
if ChatTextFixed[1] as! Int == 0 {}
if ChatTextFixed[1] as! Int == ! {}
并将文本设置为1标签,只有这样才能起作用:
cell!.ChatLableS.text = ChatTextFixed[0] as? String
cell!.RView.hidden = true
更新
问题是因为
cell!.RView.hidden = true
cell!.SView.hidden = true
但是我如何隐藏其他标签并仅显示一个标签!
最佳答案
let cell = tableView.dequeueReusableCellWithIdentifier("MyCell") as! MyTableViewCell
let ChatTextFixed = ChatText[indexPath.row]
if let index = Int(ChatTextFixed[1]) where index == 0 {
cell.ChatLableS.text = ChatTextFixed[0]
cell.ChatLableR.hidden = true
cell.RView.hidden = true
} else {
cell.ChatLableR.text = ChatTextFixed[0]
cell.ChatLableS.hidden = true
cell.SView.hidden = true
}
cell.ChatLableS.textColor = UIColor.whiteColor()
cell.ChatLableR.textColor = UIColor.blackColor()
return cell
关于ios - UITableViewCell随机消失,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40335177/