私は私のソケットioでチャットページを作っています。着信メッセージと着信メッセージの2つのメッセージがあります。UITableViewCellがランダムに消えます
私はVARを持っているが、このようなコンテンツを保存するどのChatTextと呼ば:
0 =送信され[[ "こんにちは、どのようにあなたは?"、 "0"]、[ "私は良いです、あなたはどう? 」、 『1』]]
と1 =は、だから私は送信され、受信したメッセージやラベルにそれらを設定されている1知っているし、彼らに
のスタイルを設定することができますを受け
Iこれが正しいかどうかは分かりませんが、インターネットで検索してもあまり情報が見つからないので、このようにしました。間違っているか教えてください。この問題を解決する方法を教えてください。
これはこれまでのところ、私は問題があることが必要だと思うところ私が持っている私のコードです:
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 ChatTextFixed[1] as! Int == 0 {}
if ChatTextFixed[1] as! Int == ! {}
と1枚のラベルにテキストを設定しますそれだけでは、このように動作します:
cell!.ChatLableS.text = ChatTextFixed[0] as? String
cell!.RView.hidden = true
UPDATE
問題は
cell!.RView.hidden = true
cell!.SView.hidden = true
のですが、どのように私は他のラベルを非表示にし、一つだけを表示することができます!
でも、新しいデータを置くことができますが、スクロールすると5つ以上のメッセージが表示されたり、新しいデータが挿入された場合でも隠されてしまいます。 –
私は問題が再利用可能なセルだと思って、すべてのビューとラベルを非表示にしてから、他のブロックに各コンポーネントを表示してみてください –