昨天,去忙別的事情了,今天繼續更新環信整合的教程。
首先,我們自定義乙個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
#import "chatlistviewcontroller.h"
#import "chatviewcontroller.h"
#import "conversationcell.h"
#import "converttocommonemoticonshelper.h"
@inte***ce
chatlistviewcontroller ()
@end
2、獲取聊天管理器物件
這個步驟很重要,缺少這個就載入不了會話的資料。
[self getallconversations]; //獲取所有的會話
}- (void)viewdidload
3、獲取所有的會話
//獲取所有的會話
- (void)getallconversations
資料都已經載入好了,定義乙個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;
}
好吧,我們來編譯一下。
哎呦,不錯喔,但是感覺還是少點什麼。我們應該要顯示最後收到的一條訊息,和收到訊息的時間,對吧。
用下面這個方法,記得先引入乙個轉換表情的類:
#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;
}
ok ,一步一步來,我們編譯一下,看看效果。
very good ! 然後我們在把收到訊息的時間給加上。
1、先引入乙個處理時間的標頭檔案:
#import
"nsdate+category.h"
2、新增處理時間的方法:
// 得到最後訊息時間
-(nsstring *)lastmessagetimebyconversation:(emconversation *)conversation
return ret;
}
3、在列表中顯示
在numberofrowsinsection方法中新增:
cell.labtime.text = [self
lastmessagetimebyconversation:conversation]; //顯示收到訊息的時間
完工,編譯看效果。
有讀者反饋,傳送訊息不顯示時間,會話列表也不顯示時間。原因是因為沒有新增」localizable.string」這個檔案。新增進去,重新編譯,即可顯示時間。如下圖:
iOS開發 環信載入會話列表
1.新建乙個cell 首先,我們自定義乙個cell,用來實現會話框的好友暱稱 訊息 傳送時間等。繼承於ycbasetableviewcell,這個是我自己寫的乙個自定義cell的基類,你如果沒有引用我的ycbasetableviewcell檔案,直接繼承蘋果的uitableviewcell即可。然後...
iOS 整合環信(四)
本節主要仿照環信demo來建立demo的介面。我們在使用環信的demo可以看到環信的整個介面框架是uitabbarcontroller作為主控制器,裡面裝了會話conversationlistcontroller 通訊錄contactlistviewcontroller和設定settingsview...
iOS環信整合心得
首先對於新手來說,一定要先去看環信api的伺服器整合文件,去了解一下資料儲存的邏輯,要不然會有很多轉不過彎的問題 然後我就直接上關鍵 nsmutablearray datasources return datasources void viewdidload 接收好友訊息 void messages...