如何在一个 tableView 上提供超过 2 个自定义单元格以进行聊天
Posted
技术标签:
【中文标题】如何在一个 tableView 上提供超过 2 个自定义单元格以进行聊天【英文标题】:How to give more than 2 custom cell on one tableView for chat 【发布时间】:2019-02-12 04:06:56 【问题描述】:聊天 ui 的聊天图像有 3 种类型,即文本、图像和轮播。我需要为一个 tableView 制作 3 个自定义单元格吗?该怎么做?
【问题讨论】:
和单细胞一样 希望对您有所帮助UITableview with more than One Custom Cells with Swift 嗨,谢谢你的回答。我会试试的 【参考方案1】:是的,您必须创建三个自定义单元格,以便使用第三方或 tableview 单元格内的集合视图。
例如:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cellIncomming = tableView.dequeueReusableCell(withIdentifier: "IncommingChatCell") as! IncommingChatCell
let cellOutgoing = tableView.dequeueReusableCell(withIdentifier: "OutgoingChatCell") as! OutgoingChatCell
let chatInfo = chatDataSourse[indexPath.row]
if chatInfo.user == "receiver"
cellIncomming.chatLabel.text = chatInfo.chatString
return cellIncomming
else
cellOutgoing.chatLabel.text = chatInfo.chatString
return cellOutgoing
【讨论】:
嗨,我有一个问题。 如果我的 api 响应没有发送者或接收者怎么办 "result": "output": [ "type": "text", "text": "Ini respons berbentuk teks", "speech": "Ini respons berbentuk teks" , "type": "text", "text": "Ini adalah teks yang dipakai sebagai dummy response untuk message type text", "speech": "Ini adalah teks yang dipakai sebagai dummy response untuk message type text" ] 嗨@amaulana 告诉您的后端人员提供任何东西(例如:userId 或发送者/接收者等),以便您可以识别聊天来自哪一方。在上面的 json 中,我看不到任何设置聊天气泡的方法。【参考方案2】:在单元格中
if Condition1
let cell : CellOne! = tableView.dequeueReusableCell( withIdentifier: "CellOne") as? CellOne
return cell
else if Condition2
let cell : CellTwo! = tableView.dequeueReusableCell( withIdentifier: "CellTwo") as? CellTwo
return cell
else
let cell : CellThree! = tableView.dequeueReusableCell( withIdentifier: "CellThree") as? CellThree
return cell
【讨论】:
以上是关于如何在一个 tableView 上提供超过 2 个自定义单元格以进行聊天的主要内容,如果未能解决你的问题,请参考以下文章
从 Tableview 单元格中获取超过一个 TextField 的值?
如何通过在iOS中进行JSON Pasing一次在tableview上显示不同的图像?