本節主要仿照環信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...