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