消息模块-下拉刷新列表
This commit is contained in:
2
Podfile
2
Podfile
@@ -40,7 +40,7 @@ target 'xplan-ios' do
|
||||
#pop动画
|
||||
pod 'pop', '~> 1.0.12'
|
||||
#云信
|
||||
pod 'NIMSDK_LITE', '~> 7.8.3'
|
||||
pod 'NIMSDK_LITE', '~> 9.0.1'
|
||||
#下拉刷新控件
|
||||
pod 'MJRefresh'
|
||||
#登录的
|
||||
|
10
Podfile.lock
10
Podfile.lock
@@ -47,7 +47,7 @@ PODS:
|
||||
- mob_sharesdk/ShareSDK
|
||||
- MOBFoundation (>= 3.2.9)
|
||||
- MOBFoundation (3.2.27)
|
||||
- NIMSDK_LITE (7.8.5)
|
||||
- NIMSDK_LITE (9.0.1)
|
||||
- NTESBaseComponent (1.4)
|
||||
- NTESQuickPass (3.2.6):
|
||||
- NTESBaseComponent
|
||||
@@ -108,7 +108,7 @@ DEPENDENCIES:
|
||||
- mob_sharesdk/ShareSDKPlatforms/Apple
|
||||
- mob_sharesdk/ShareSDKPlatforms/QQ
|
||||
- mob_sharesdk/ShareSDKPlatforms/WeChat
|
||||
- NIMSDK_LITE (~> 7.8.3)
|
||||
- NIMSDK_LITE (~> 9.0.1)
|
||||
- NTESQuickPass
|
||||
- pop (~> 1.0.12)
|
||||
- QGVAPlayer
|
||||
@@ -130,6 +130,7 @@ SPEC REPOS:
|
||||
https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git:
|
||||
- IQKeyboardManager
|
||||
- JXPagingView
|
||||
- NIMSDK_LITE
|
||||
- NTESBaseComponent
|
||||
- NTESQuickPass
|
||||
- QGVAPlayer
|
||||
@@ -151,7 +152,6 @@ SPEC REPOS:
|
||||
- MJRefresh
|
||||
- mob_sharesdk
|
||||
- MOBFoundation
|
||||
- NIMSDK_LITE
|
||||
- pop
|
||||
- Protobuf
|
||||
- Qiniu
|
||||
@@ -192,7 +192,7 @@ SPEC CHECKSUMS:
|
||||
MJRefresh: ec9c53ff4abf3a9237b4283862f1bd51c2ee3fdb
|
||||
mob_sharesdk: a60006891a079486ff3269ed326adfa05a967c01
|
||||
MOBFoundation: efdc3ce6b843fbc10ae8c1c6122a02b0d845b39b
|
||||
NIMSDK_LITE: 8e28ae0a26dd1dccc4684b697381f0a72a733f51
|
||||
NIMSDK_LITE: c376a3f90c1cd79d9cca39fbdeb6a718e99e244a
|
||||
NTESBaseComponent: 9e97373eec7e5a26c39db26477bf99a37ee9e71a
|
||||
NTESQuickPass: 781bd12ee63681389fe9b646c837fa76e3a00e6e
|
||||
pop: d582054913807fd11fd50bfe6a539d91c7e1a55a
|
||||
@@ -215,6 +215,6 @@ SPEC CHECKSUMS:
|
||||
YYText: 5c461d709e24d55a182d1441c41dc639a18a4849
|
||||
YYWebImage: 5f7f36aee2ae293f016d418c7d6ba05c4863e928
|
||||
|
||||
PODFILE CHECKSUM: f2682cf01b67e68f847979b09786b508a737bed6
|
||||
PODFILE CHECKSUM: d02ba4da989cc65b5e850b0ff42a9ef68dcc1f1e
|
||||
|
||||
COCOAPODS: 1.11.2
|
||||
|
@@ -9,6 +9,7 @@
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <IQKeyboardManager/IQKeyboardManager.h>
|
||||
#import <TZImagePickerController/TZImagePickerController.h>
|
||||
#import <MJRefresh/MJRefresh.h>
|
||||
///Tool
|
||||
#import "XCCurrentVCStackManager.h"
|
||||
#import "NIMMessageMaker.h"
|
||||
@@ -44,6 +45,8 @@
|
||||
@property (nonatomic, strong) UserInfoModel *userInfo;
|
||||
///输入框
|
||||
@property (nonatomic,strong) SessionToolbarView *toolbarView;
|
||||
///最后的一条消息
|
||||
@property (nonatomic,strong) NIMMessage *lastMessage;
|
||||
@end
|
||||
|
||||
@implementation SessionViewController
|
||||
@@ -73,12 +76,49 @@
|
||||
[super viewDidLoad];
|
||||
[IQKeyboardManager sharedManager].enable = NO;
|
||||
[IQKeyboardManager sharedManager].enableAutoToolbar = NO;
|
||||
[self initData];
|
||||
[self initHeaderAndFooterRrfresh];
|
||||
[[NIMSDK sharedSDK].chatManager addDelegate:self];
|
||||
[[NIMSDK sharedSDK].conversationManager addDelegate:self];
|
||||
[self.presenter getUserInfo:self.session.sessionId];
|
||||
}
|
||||
|
||||
- (void)initHeaderAndFooterRrfresh {
|
||||
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
|
||||
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
|
||||
header.stateLabel.textColor = [ThemeColor secondTextColor];
|
||||
header.lastUpdatedTimeLabel.textColor = [ThemeColor secondTextColor];
|
||||
self.sessionTableView.mj_header = header;
|
||||
[self headerRefresh];
|
||||
[self initData];
|
||||
}
|
||||
|
||||
- (void)headerRefresh {
|
||||
if (self.messages.count > 0) {
|
||||
[[[NIMSDK sharedSDK] conversationManager] messagesInSession:self.session message:self.messages.firstObject limit:20 completion:^(NSError * _Nullable error, NSArray<NIMMessage *> * _Nullable messages) {
|
||||
[self.sessionTableView.mj_header endRefreshing];
|
||||
if (error == nil && messages.count > 0) {
|
||||
for (int i = ((int)messages.count -1); i > 0; i--) {
|
||||
NIMMessage * message = [messages objectAtIndex:i];
|
||||
[self.messages insertObject:message atIndex:0];
|
||||
}
|
||||
}
|
||||
[self.sessionTableView reloadData];
|
||||
}];
|
||||
} else {
|
||||
[[[NIMSDK sharedSDK] conversationManager] messagesInSession:self.session message:nil limit:20 completion:^(NSError * _Nullable error, NSArray<NIMMessage *> * _Nullable messages) {
|
||||
[self.sessionTableView.mj_header endRefreshing];
|
||||
if (error == nil) {
|
||||
[self.messages addObjectsFromArray:messages];
|
||||
}
|
||||
[self.sessionTableView reloadData];
|
||||
[self.sessionTableView nim_scrollToBottom:NO];
|
||||
}];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - Private Method
|
||||
- (void)initViews {
|
||||
NIMUser * user = [[NIMSDK sharedSDK].userManager userInfo:self.session.sessionId];
|
||||
if (user) {
|
||||
@@ -109,11 +149,6 @@
|
||||
}
|
||||
|
||||
- (void)initData {
|
||||
NSArray<NIMMessage *> *messages = [[NIMSDK sharedSDK].conversationManager messagesInSession:self.session message:nil limit:1000];
|
||||
[self.messages addObjectsFromArray:messages.copy];
|
||||
[self.sessionTableView reloadData];
|
||||
[self.sessionTableView nim_scrollToBottom:NO];
|
||||
|
||||
[[NIMSDK sharedSDK].userManager fetchUserInfos:@[self.session.sessionId] completion:^(NSArray<NIMUser *> * _Nullable users, NSError * _Nullable error) {
|
||||
if (!error) {
|
||||
self.title = users[0].userInfo.nickName;
|
||||
@@ -276,7 +311,7 @@
|
||||
[self.toolbarView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
make.bottom.mas_equalTo(self.view).offset(-heightFromBottom);
|
||||
}];
|
||||
[self.sessionTableView nim_scrollToBottom:YES];
|
||||
[self.sessionTableView nim_scrollToBottom:NO];
|
||||
}
|
||||
|
||||
- (void)sendTextMessage:(NSString *)text {
|
||||
|
Reference in New Issue
Block a user