消息渲染模型(ChatCellModel)
消息渲染模型:ChatCellModel 属于 CellModel(渲染模型)。本页的 props / events / behaviors 来自 sdk-imkit.json → globalUIKit,声明与示例来自 bindings.ios.uikit,不手写漂移。
契约属性(props)
| 属性 | 类型 | 可选 | 说明 |
|---|---|---|---|
message | Message | 否 | 消息实体(IMLib Message) |
showTime | bool | 否 | 是否展示时间分隔(默认 5 分钟规则) |
showAvatar | bool | 否 | 是否展示头像 |
readCount | int? | 是 | 群聊已读人数(n/m 的分子) |
sendState | enum | 否 | 发送状态(发送中 / 成功 / 失败 / 已读) |
事件(events)
该组件不声明事件:它是数据 / 渲染模型,由 ViewModel 与视图驱动。
行为(behaviors)
- 时间分隔规则(5 分钟)
- 发送状态图标(发送中/成功/失败)
- 群已读计数(n/m)
- 撤回占位
- 自定义类型降级展示
公开符号与声明
| 语言 | 声明 |
|---|---|
| Swift | IMPChatCellModel(message: IMPMessage, showTime: Bool, showAvatar: Bool, readCount: Int?, sendState: IMPMessageSendState) |
| Objective-C | - (instancetype)initWithMessage:(IMPOSMessage *)message showTime:(BOOL)showTime showAvatar:(BOOL)showAvatar readCount:(NSNumber *)readCount sendState:(IMPOSMessageSendState)sendState; |
使用示例(Swift / Objective-C)
IMPChatCellModel(message: message, showTime: true, showAvatar: true, readCount: nil, sendState: .sent)IMPOSGlobalChatCellModel *chatCellModel =
[[IMPOSGlobalChatCellModel alloc] initWithMessage:message showTime:YES showAvatar:YES readCount:nil sendState:IMPOSMessageSendStateSent];示例口径
示例由绑定签名与契约类型生成:构造函数参数、协议方法、属性名均来自契约;实际业务中把示例变量替换为宿主实例即可。
在架构中的位置
| 项 | 值 |
|---|---|
| 层 | CellModel(渲染模型) |
| 依赖 | GlobalUIKit -> IMKit -> IMLib(公开接口) |
| 相关组件 | ChatViewModel、ChatViewController |
错误处理
ViewModel 层通过事件上报错误(如 error(err));错误码与处理建议见 Global IM UIKit 错误处理、状态码(运行时 43 条)与 状态码全量对照(440 条)。