码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 集成环信(四)

时间:2016-05-13 03:57:03      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

本节主要仿照环信demo来创建demo的界面。

我们在使用环信的demo可以看到环信的整个界面框架是UITabBarController作为主控制器,里面装了会话ConversationListController、通讯录ContactListViewController和设置SettingsViewController这三个控制器。现在我们来创建这三个控制器。

创建ConversationListController


我们通过环信demo可以看到,ConversationListController是继承于EaseConversationListViewController,而EaseConversationListViewController是继承于EaseRefreshTableViewController的,现在我们先来研究下EaseRefreshTableViewController是怎么实现的。

EaseRefreshTableViewController的实现

我们在做项目的时候,tableView 下拉刷新和上拉加载更多是经常使用的功能,而MJRefresh的上拉刷新是使用最频繁的第三方类,但是,如果我们在每个界面的tableView上添加MJRefresh的相关代码,就会造成代码重复,所以最好能写一个基类,让凡是带有tableview的控制器继承于这个基类,这个子类就能自动带有MJRefresh的相关功能,而EaseRefreshTableViewController就是这么实现的。下面附上部分EaseRefreshTableViewController的代码。

#import <UIKit/UIKit.h>

#define KCELLDEFAULTHEIGHT 50

@interface EaseRefreshTableViewController : UIViewController<UITableViewDataSource, UITableViewDelegate>
{
    NSArray *_rightItems;
}

@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的实现

EaseConversationListViewController继承于EaseRefreshTableViewController,具有上拉刷新等MJRefresh相关功能,并重写了tableViewDidTriggerHeaderRefresh这个方法。具体的实现大家去看下ChatDemo-UI3.0的源码吧。

ConversationListController的实现

ConversationListController继承于EaseConversationListViewController,是会话列表的控制器,这里我们为了演示,仅仅完善其中的界面,一些逻辑代码暂时省略。

iOS 集成环信(四)

标签:

原文地址:http://blog.csdn.net/pelsor/article/details/51337832

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!