ソケット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
しかし、他のラベルを非表示にして 1 つだけを表示するにはどうすればよいですか?