iOS 整合環信(四)

2021-07-11 16:01:51 字數 2602 閱讀 4638

本節主要仿照環信demo來建立demo的介面。

我們在使用環信的demo可以看到環信的整個介面框架是uitabbarcontroller作為主控制器,裡面裝了會話conversationlistcontroller、通訊錄contactlistviewcontroller和設定settingsviewcontroller這三個控制器。現在我們來建立這三個控制器。

我們通過環信demo可以看到,conversationlistcontroller是繼承於easeconversationlistviewcontroller,而easeconversationlistviewcontroller是繼承於easerefreshtableviewcontroller的,現在我們先來研究下easerefreshtableviewcontroller是怎麼實現的。

我們在做專案的時候,tableview 下拉重新整理和上拉載入更多是經常使用的功能,而mjrefresh的上拉重新整理是使用最頻繁的第三方類,但是,如果我們在每個介面的tableview上新增mjrefresh的相關**,就會造成**重複,所以最好能寫乙個基類,讓凡是帶有tableview的控制器繼承於這個基類,這個子類就能自動帶有mjrefresh的相關功能,而easerefreshtableviewcontroller就是這麼實現的。下面附上部分easerefreshtableviewcontroller的**。

#import

#define kcelldefaultheight 50

@inte***ce easerefreshtableviewcontroller : uiviewcontroller

@property (strong, nonatomic) nsarray *rightitems;

@property (strong, nonatomic) uiview *defaultfooterview;

@property (strong, nonatomic) uitableview *tableview;

@property (strong, nonatomic) nsmutablearray *dataarray;

@property (strong, nonatomic) nsmutabledictionary *datadictionary;

@property (nonatomic) int page;

@property (nonatomic) bool showrefreshheader;//是否支援下拉重新整理

@property (nonatomic) bool showrefreshfooter;//是否支援上拉載入

@property (nonatomic) bool showtableblankview;//是否顯示無資料時預設背景

- (instancetype)initwithstyle:(uitableviewstyle)style;

- (void)tableviewdidtriggerheaderrefresh;//下拉重新整理事件

- (void)tableviewdidtriggerfooterrefresh;//上拉載入事件

- (void)tableviewdidfinishtriggerheader:(bool)isheader reload:(bool)reload;

@end

具體的實現可以看專案的源**,路徑是:chatdemo-ui3.0 ->easeui -> emukit ->viewcontroller ->easerefreshtableviewcontroller.h

easerefreshtableviewcontroller這部分的**幫我們封裝了介面重新整理和資料為空時候的邏輯**,我們在做其他的專案的時候可以借鑑一下,能夠幫我們省下不少的**。

easeconversationlistviewcontroller繼承於easerefreshtableviewcontroller,具有上拉重新整理等mjrefresh相關功能,並重寫了tableviewdidtriggerheaderrefresh這個方法。具體的實現大家去看下chatdemo-ui3.0的原始碼吧。

conversationlistcontroller繼承於easeconversationlistviewcontroller,是會話列表的控制器,這裡我們為了演示,僅僅完善其中的介面,一些邏輯**暫時省略。

iOS環信整合心得

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

iOS環信3 0整合 二 UI檔案整合

環信3.0整合相關教程 1 ios環信3.0整合 一 sdk的整合 2 ios環信3.0整合 二 ui檔案整合 3 ios環信3.0整合 三 單聊整合 整合環信3.0ui檔案,需要新增的檔案,如下圖所示 新增完成之後,如下圖所示 檔案新增成功之後,編譯會報錯,因為你沒有新增pch檔案。之前我們新增進...

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

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