Skip to content

Commit

Permalink
Merge pull request #1055 from haoxiuwen/doc-v2
Browse files Browse the repository at this point in the history
Modify IM Doc
  • Loading branch information
haoxiuwen authored Nov 25, 2024
2 parents 1f09be8 + f6d7c3d commit 9ecfb58
Showing 1 changed file with 25 additions and 12 deletions.
37 changes: 25 additions & 12 deletions docs/uikit/chatuikit/ios/chatuikit_custom_cell.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# 实现新类型自定义消息 Cell
# 实现新类型的自定义消息 Cell

本文以红包消息为例介绍如何添加一种新类型的自定义消息 Cell。

1. 根据需求继承 `EaseChatUIKit` 中的自定义消息 Cell。
## 步骤一 继承自定义消息 Cell

根据需求继承 `EaseChatUIKit` 中的自定义消息 Cell。

```Swift
import UIKit
Expand Down Expand Up @@ -31,7 +33,9 @@ class RedPackageCell: CustomMessageCell {

```

2. 根据需求继承 `EaseChatUIKit` 中的 Cell 的渲染模型 `MessageEntity`,并指定气泡大小,其中 `redPackageIdentifier` 为红包的自定义消息的 event事件。
## 步骤二 继承 Cell 的渲染模型

根据需求继承 `EaseChatUIKit` 中的 Cell 的渲染模型 `MessageEntity`,并指定气泡大小,其中 `redPackageIdentifier` 为红包的自定义消息的 `event` 事件。

```Swift
import UIKit
Expand Down Expand Up @@ -64,17 +68,19 @@ final class MineMessageEntity: MessageEntity {
}
```

3. 添加发送附件消息的类型。
## 步骤三 添加附件消息类型

例如,增加发送红包消息
添加附件消息的类型,例如,增加红包消息

```Swift

let redPackage = ActionSheetItem(title: "红包".chat.localize, type: .normal,tag: "Red",image: UIImage(named: "photo", in: .chatBundle, with: nil))
Appearance.chat.inputExtendActions.append(redPackage)
```

4. 在继承的 `MessageListController` 处理新增的附件消息类型的点击。
## 步骤四 处理新增的附件消息类型的点击事件

继承 `MessageListController`,处理新增的附件消息类型的点击事件。

```Swift
class CustomMessageListController: MessageListController {
Expand All @@ -101,9 +107,11 @@ let redPackageIdentifier = "redPackage"

```

![img](/images/uikit/chatuikit/ios/configurationitem/chat/red_package_attachment.png)
![img](/images/uikit/chatuikit/ios/configurationitem/chat/red_package_attachment.png =350x750)

5.`EaseChatUIKit` 中的 `MessageListViewModel` 增加发送红包消息的方法。
## 步骤五 增加发送新类型附件消息的方法

`EaseChatUIKit``MessageListViewModel` 中增加发送红包消息的方法。

```Swift
extension MessageListViewModel {
Expand Down Expand Up @@ -135,9 +143,11 @@ extension MessageListViewModel {

```

![img](/images/uikit/chatuikit/ios/configurationitem/chat/red_package_send.png)
![img](/images/uikit/chatuikit/ios/configurationitem/chat/red_package_send.png =350x750)

## 步骤六 注册继承的对象

6. 将上述继承的对象初始化后,在 `EaseChatUIKit`中进行注册。
将上述继承的对象初始化后,在 `EaseChatUIKit` 中进行注册。

```Swift

Expand All @@ -147,7 +157,10 @@ extension MessageListViewModel {
ComponentsRegister.shared.registerCustomizeCellClass(cellType: RedPackageCell.self)
```

- 这里 `ComponentsRegister.shared.Conversation = MineConversationInfo.self` 是为了修改自定义消息在会话列表中。会话收到新消息时显示的内容这里暂定为显示 "[红包]",示例代码如下,主要更改在非文本消息类型的 `else` 中根据自定义消息的 `event` 显示对应的内容。
这里的 `ComponentsRegister.shared.Conversation = MineConversationInfo.self` 用于在会话列表中展示收到的新类型的自定义消息内容。

例如,在以下示例代码中,会话中收到新消息时显示为 "[红包]",主要调整了在非文本消息类型的 `else` 中根据自定义消息的 `event` 显示对应的内容。

```Swift
import UIKit
import EaseChatUIKit
Expand Down Expand Up @@ -222,4 +235,4 @@ final class MineConversationInfo: ConversationInfo {

```

![img](/images/uikit/chatuikit/ios/configurationitem/chat/red_package_receive.png)
![img](/images/uikit/chatuikit/ios/configurationitem/chat/red_package_receive.png =350x750)

0 comments on commit 9ecfb58

Please sign in to comment.