资料介绍
软件简介
CDChatList
高性能的聊天页面解决方案 对聊天列表的高度封装,可灵活配置页面样式
聊天界面其实大同小异,所以这里封装了一个聊天的组件,使用CoreText和手动代码布局,尽量实现简单,通用,高效,易于维护。
项目结构
CDChatListView: UITableView 视图,聊天页面主体
CDBaseMsgCell: 实现消息气泡基本视图
CDTextTableViewCell、CDImageTableViewCell、CDAudioTableViewCell: 继承自CDBaseMsgCell,实现响应功能。 CDSystemTableViewCell: 特殊消息气泡,实现系统通知
CellCaculator: tableview布局计算,并提前渲染cell
ChatConfiguration: chatlist配置类组,UI定制,及资源等
子组件
CDLabel: 富文本标签 CDChatInputBox: 输入框封装组件
安装
支持至iOS 11
pod 'CDChatList'
#import
使用
配置 CDChatList
ChatHelpr负责ChatHelpr的UI配置,及组件的资源文件设置
UI配置及资源文件都有默认,所以无需自定义的话,就可以跳过组件的配置
添加 CDChatList 视图
CDChatListView *list = [[CDChatListView alloc] initWithFrame:self.view.bounds]; list.msgDelegate = self;self.listView = list; [self.view addSubview:self.listView];
CDChatList会将视图控制器automaticallyAdjustsScrollViewInsets及contentInsetAdjustmentBehavior设为NO及Never,并适应导航栏高度
消息模型 MessageModalProtocal
可以使用自己的消息模型,消息模型需遵守MessageModalProtocal,实现相关属性
组件事件 ChatListProtocol
从组件发出的消息
消息列表请求加载更多消息
-(void)chatlistLoadMoreMsg: (CDChatMessage)topMessage callback: (void(^)(CDChatMessageArray))finnished;
消息中的点击事件
-(void)chatlistClickMsgEvent: (ChatListInfo *)listInfo;
向组件发消息
添加新的数据到底部
-(void)addMessagesToBottom: (CDChatMessageArray)newBottomMsgArr;
更新数据源中的某条消息模型(主要是为了更新UI上的消息状态)
-(void)updateMessage:(CDChatMessage)message;
使用场景
收/发消息
// 发{ MessageModal *modal; } -(void)send{ modal = [[MessageModal alloc] init]; modal.msgState = CDMessageStateSending; modal.createTime = ...; modal.msg = ...; modal.msgType = ...; [chatList addMessagesToBottom: modal]; } -(void)sendCallBack:(BOOL)isSuccess{ modal.msgState = isSuccess; // 此处应处理成枚举 [chatList updateMessage: modal]; }// 收-(void)receivedNewMessage:(MessageModal *)modal{ [chatList addMessagesToBottom: modal]; }
下拉加载更多消息
消息列表被下拉时,触发此回调
-(void)chatlistLoadMoreMsg: (CDChatMessage)topMessage callback: (void(^)(CDChatMessageArray))finnished { // 根据topMessage 获取更多消息 NSArray *msgArr = [self getMoreMessageFrom: topMessage amount: 10]; callback(msgArr); }
消息点击事件
目前消息体重处理了 文本点击 及 图片点击 事件
-(void)chatlistClickMsgEvent: (ChatListInfo *)listInfo{ if (listInfo.eventType == ChatClickEventTypeTEXT){ // 点击的文本 listInfo.clickedText // 点击的文字位置 防止有相同的可点击文字 listInfo.range // 被点击文本的隐藏信息 e.g. listInfo.clickedTextContent } else if (listInfo.eventType == ChatClickEventTypeIMAGE){ // 图片 listInfo.image // 图片在tableview中的位置 listInfo.msgImageRectInTableView } }
TODO
-
自定义消息内容匹配
- LM98725高性能16位81 MSPS信号处理解决方案
- NVMe Host Controller IP实现高性能存储解决方案 0次下载
- 进阶的电动两轮车——更低成本,更高性能的BMS解决方案
- PL2586电路高性能设计方案 14次下载
- Firefly云手机集群服务器解决方案
- 设计解决方案43-Altera低压FPGA的高性能开关模式电源解决方案
- 高性能惯性传感器及工业系统智能检测资料下载
- 高性能低成本的蓝牙模块CSR6576原理图 16次下载
- 高性能FPGA的典型应用详细资料说明 24次下载
- SKM80D高性能GNSS一体式解决方案模块的数据手册免费下载 4次下载
- NBB-302低成本、高性能通用射频和微波放大解决方案放大器的资料概述
- NBB-402用于通用射频和微波放大解决方案的高性能放大器数据手册下载
- TE 高性能套管应用方案 9次下载
- 基于SE3910的高性能隔离式AC-DC电源解决方案
- 影响行业发展的HSPA解决方案
- 高性能电流模式PWM交直流转换芯片ME8230介绍 243次阅读
- 基于CANoe的高性能测试系统解决方案 1364次阅读
- 高性能USB双C口控制器HUSB383A解决方案 930次阅读
- 灵活的双输出6相降压控制器为电源提供高性能和灵活解决方案 857次阅读
- 航空航天和国防应用的电源管理解决方案 788次阅读
- 浅谈高性能AO技术——AD5755方案解析 3238次阅读
- 基于高性能ADC的都市基站设计方案 2096次阅读
- 复合放大器实现高精度的高输出驱动能力 获得最佳的性能 1600次阅读
- Locix LPS解决方案提供基于Wi-Fi高精度高性能本地定位 4428次阅读
- 浅谈高性能OPS H110主板解决方案 6013次阅读
- PSoC 6高性能超低功耗IoT应用方案 4238次阅读
- Tronics Microsystems高性能MEMS惯性传感器 5877次阅读
- 贸泽电子推出EMI全新解决方案 5384次阅读
- Altera宣布为高性能FPGA提供高效的电源转换解决方案 5028次阅读
- 基于AN8026变频器高性能电源设计方案 4003次阅读
下载排行
本周
- 1Keysight B1500A 半导体器件分析仪用户手册、说明书 (中文)
- 19.00 MB | 4次下载 | 免费
- 2使用TL431设计电源
- 0.67 MB | 2次下载 | 免费
- 3BT134双向可控硅手册
- 1.74 MB | 2次下载 | 1 积分
- 4一种新型高效率的服务器电源系统
- 0.85 MB | 1次下载 | 1 积分
- 5LabVIEW环形控件
- 0.01 MB | 1次下载 | 1 积分
- 6PR735,使用UCC28060的600W交错式PFC转换器
- 540.03KB | 1次下载 | 免费
- 751单片机核心板原理图
- 0.12 MB | 1次下载 | 5 积分
- 8BP2879DB支持调光调灭的非隔离低 PF LED 驱动器
- 1.44 MB | 1次下载 | 免费
本月
- 1开关电源设计原理手册
- 1.83 MB | 54次下载 | 免费
- 2FS5080E 5V升压充电两串锂电池充电管理IC中文手册
- 8.45 MB | 23次下载 | 免费
- 3DMT0660数字万用表产品说明书
- 0.70 MB | 13次下载 | 免费
- 4UC3842/3/4/5电源管理芯片中文手册
- 1.75 MB | 12次下载 | 免费
- 5ST7789V2单芯片控制器/驱动器英文手册
- 3.07 MB | 11次下载 | 1 积分
- 6TPS54202H降压转换器评估模块用户指南
- 1.02MB | 8次下载 | 免费
- 7STM32F101x8/STM32F101xB手册
- 1.69 MB | 8次下载 | 1 积分
- 8基于MSP430FR6043的超声波气体流量计快速入门指南
- 2.26MB | 7次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935119次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183335次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73807次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65987次下载 | 10 积分
评论
查看更多