iOS 开发资料大集合iOS即时通讯IOS开发资料大全

IOS [ 即时通讯 ]发送文本消息 代码

2016-11-04  本文已影响81人  许威彬

����```

import "bingeChatViewController.h"

import "bingeInputView.h"

/*
1.隐藏和显示tabBar
2.为inputView 加分割线
3.title 好友聊天标题
4.监听键盘弹出 对相应的布局做修改
5.获取发送消息信息
*/

// 宏 自定义View高度为44

define KInputViewH 44

@interface bingeChatViewController () <UITableViewDelegate,UITableViewDataSource, UITextFieldDelegate>

//由这两个控件组成
@property (nonatomic,strong) UITableView *tableView;
@property (nonatomic,strong) bingeInputView *inputView;

// 发送消息列表数组
@property (nonatomic,strong) NSMutableArray *chatMsgs;

@end

@implementation bingeChatViewController
// 1.
-(UITableView *)tableView {
if (!_tableView) {
_tableView = [[UITableView alloc]init];
// 代理方法
_tableView.dataSource = self;
_tableView.delegate = self;
// Xib View 的位置
_tableView.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height - KInputViewH);
}
return _tableView;
}

// 2.
-(UIView *)inputView {
if (!_inputView) {
_inputView = [bingeInputView binge_inputView];
_inputView.textField.delegate = self;
_inputView.frame = CGRectMake(0, self.view.bounds.size.height - KInputViewH, self.view.bounds.size.width, KInputViewH);
}
return _inputView;
}

// 3.

// 点击空白处收键盘
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(fingerTapped:)];

[self.view addGestureRecognizer:singleTap];

// 获取会话中的聊天记录
[self binge_reloadChatMsgs];

//监听键盘弹出 对相应的布局组修改
[self binge_observerKeyboardFrameChange];

}

pragma mark - tabBar 隐藏和显示

pragma mark - UITableViewDataSource

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"chatID"];
if (!cell) {
    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"chatID"];
    EMMessage *msg = self.chatMsgs[indexPath.row];
    NSLog(@"msg = %@",msg);
    EMTextMessageBody *body = msg.messageBodies.firstObject;
    cell.textLabel.text = body.text;
}
return cell;  // 创建消息后 记得返回到cell

}

pragma mark - 收起键盘

// 滑动空白处隐藏键盘

// 点击空白处收键盘
-(void)fingerTapped:(UITapGestureRecognizer *)gestureRecognizer {

[self.view endEditing:YES];

}

pragma mark - UITextFieldDelegate 发送消息

// 发送成功之后 刷新列表  【定义一个可变数组】

return YES;

}

pragma mark - 私有方法

}

}

@end

上一篇下一篇

猜你喜欢

热点阅读