iOS開發 環信載入會話列表

2021-07-10 21:20:23 字數 3372 閱讀 2422

1. 新建乙個cell

首先,我們自定義乙個cell,用來實現會話框的好友暱稱、訊息、傳送時間等。繼承於ycbasetableviewcell,這個是我自己寫的乙個自定義cell的基類,你如果沒有引用我的ycbasetableviewcell檔案,直接繼承蘋果的uitableviewcell即可。然後,新增一些初始化控制項的**,如下:

#import "ycbasetableviewcell.h"

@inte***ce

conversationcell : ycbasetableviewcell

@property (retain, nonatomic) uilabel *labname;

@property (retain, nonatomic) uilabel *labmsg;

@property (retain, nonatomic) uilabel *labtime;

@property (retain, nonatomic) uiimageview *imgheader;

@end

#import "conversationcell.h"

@implementation

conversationcell

- (id)initwithstyle:(uitableviewcellstyle)style reuseidentifier:(nsstring *)reuseidentifier

return

self;

}- (void)setdictinfo:(nsdictionary *)dictinfo

@end

1、我們進入chatlistviewcontroller.m檔案中,在類的宣告出遵循一些相關的協議,和新增相關的標頭檔案:
#import "chatlistviewcontroller.h"

#import "chatviewcontroller.h"

#import "conversationcell.h"

#import "converttocommonemoticonshelper.h"

@inte***ce

chatlistviewcontroller ()

@end

2、獲取聊天管理器物件

這個步驟很重要,缺少這個就載入不了會話的資料。

[self getallconversations]; //獲取所有的會話

}- (void)viewdidload

3、獲取所有的會話

//獲取所有的會話

- (void)getallconversations

1. 顯示好友暱稱和頭像

資料都已經載入好了,定義乙個arrconversations陣列接收資料,然後用列表顯示出來。

#pragma mark - uitableview delegate & datasource

- (nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section

- (uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath

emconversation *conversation = [arrconversations objectatindex:indexpath.row];

switch (conversation.conversationtype)

//群聊會話

case econversationtypegroupchat:}}

//聊天室會話

case econversationtypechatroom:

default:

break;

}// cell.labmsg.text = [self subtitlemessagebyconversation:conversation];

return cell;

}

2. 顯示最後收到的訊息

用下面這個方法,記得先引入乙個轉換表情的類:

#import 

"converttocommonemoticonshelper.h"

//得到最後訊息文字或者型別

-(nsstring *)subtitlemessagebyconversation:(emconversation *)conversation

break;

//文字型別

case emessagebodytype_text:

break;

//語音型別

case emessagebodytype_voice:

break;

//位置型別

case emessagebodytype_location:

break;

case emessagebodytype_video:

break;

default:

break;}}

return ret;

}

3. 顯示收到訊息的時間

1、先引入乙個處理時間的標頭檔案:

#import 

"nsdate+category.h"

2、新增處理時間的方法:
// 得到最後訊息時間

-(nsstring *)lastmessagetimebyconversation:(emconversation *)conversation

return ret;

}

3、在列表中顯示

在numberofrowsinsection方法中新增:

cell.labtime.text = [self

lastmessagetimebyconversation:conversation]; //顯示收到訊息的時間

編譯看效果。

有讀者反饋,傳送訊息不顯示時間,會話列表也不顯示時間。原因是因為沒有新增」localizable.string」這個檔案。新增進去,重新編譯,即可顯示時間。如下圖:

iOS 環信整合 五 載入會話列表

昨天,去忙別的事情了,今天繼續更新環信整合的教程。首先,我們自定義乙個cell,用來實現會話框的好友暱稱 訊息 傳送時間等。繼承於ycbasetableviewcell,這個是我自己寫的乙個自定義cell的基類,你如果沒有引用我的ycbasetableviewcell檔案,直接繼承蘋果的uitabl...

iOS 整合環信(四)

本節主要仿照環信demo來建立demo的介面。我們在使用環信的demo可以看到環信的整個介面框架是uitabbarcontroller作為主控制器,裡面裝了會話conversationlistcontroller 通訊錄contactlistviewcontroller和設定settingsview...

iOS環信整合心得

首先對於新手來說,一定要先去看環信api的伺服器整合文件,去了解一下資料儲存的邏輯,要不然會有很多轉不過彎的問題 然後我就直接上關鍵 nsmutablearray datasources return datasources void viewdidload 接收好友訊息 void messages...