所以我在使用socket io中创建了一个聊天页面,我有2个标签用于传入和传出消息。
我有一个名为ChatText的var,它将存储如下内容:
[["嗨,你好吗? "," 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
但我怎么能隐藏另一个标签并只显示一个标签!
答案 0 :(得分:0)
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
答案 1 :(得分:0)
我不知道为什么,但改变我的代码就可以了:
if ChatTextFixed[1] as! Int == 0 {
cell!.ChatLableS.text = ChatTextFixed[0] as? String
cell!.ChatLableR.text = ""
cell!.RView.backgroundColor = UIColor.whiteColor()
cell!.SView.backgroundColor = UIColor(red: 69/225, green: 189/225, blue: 120/225, alpha: 1.0)
//cell!.RView.hidden = true
}
if ChatTextFixed[1] as! Int == 1 {
cell!.ChatLableR.text = ChatTextFixed[0] as? String
cell!.ChatLableS.text = ""
cell!.SView.backgroundColor = UIColor.whiteColor()
cell!.RView.backgroundColor = UIColor(red: 200/225, green: 200/225, blue: 200/225, alpha:1.0)
//cell!.SView.hidden = true
}
所以我将文字设置为一个标签并设置""对于花药然后隐藏它,它完美地工作,但我不知道为什么!,只是必须玩,直到它像这样工作!。