自定义

大约 1 分钟

自定义

你可以对单群聊 UIKit 中的一些控件进行自定义,添加自己的业务逻辑,实现个性化业务需求。

所有的可继承组件都在 ComponentsRegister.swift 中,继承后替换原有的组件即可。

如何自定义

自定义消息 Cell 样式

你可以对单群聊 UIKit 提供的消息 cell 的样式进行自定义,例如增加或隐藏。

以下以自定义位置消息 cell 为例介绍:

class CustomLocationMessageCell: LocationMessageCell {
    //创建返回你想展示的 view 即可,气泡会包裹住你的 view。
    @objc open override func createContent() -> UIView {
        UIView(frame: .zero).backgroundColor(.clear).tag(bubbleTag)
    }
}
//在 EaseChatUIKit 中注册继承原有类的自定义类来替换原来的类。
//在创建消息页面或使用其他 UI 组件之前调用此方法。
ComponentsRegister.shared.ChatLocationCell = CustomLocationMessageCell.self

若实现自定义消息 cell 的样式,可以继承基础消息 cell 根据自身业务进行样式进行自定义。

ComponentsRegister.shared.registerCustomizeCellClass(cellType: YourMessageCell.self)
class YourMessageCell: MessageCell {
    override func createAvatar() -> ImageView {
        ImageView(frame: .zero)
    }
}

拦截原有组件点击事件

拦截后的业务逻辑与 UI 刷新逻辑,你需要自己完全实现,建议使用注册继承即可更快速的实现需求。

会话列表

  • swipeAction:滑动事件。

  • longPressed:长按事件。

  • didSelected:点击事件。

以下示例代码为会话长按事件:

ComponentViewsActionHooker.shared.conversation.longPressed = { [weak self] indexPath,info in 
    //Process you business logic.
}

联系人列表

  • didSelectedContact:点击联系人。

  • groupWithSelected:点击添加群成员或者创建群组选择成员。

消息列表

  • replyClicked:消息中引用消息气泡点击。

  • bubbleClicked:消息气泡点击。

  • bubbleLongPressed:消息气泡长按。

  • avatarClicked:头像点击。

  • avatarLongPressed:头像长按。