私聊完成
This commit is contained in:
@@ -7,7 +7,8 @@
|
||||
|
||||
import UIKit
|
||||
import NIMSDK
|
||||
class ChatVC: BaseViewController, HiddenNavigationBarProtocol {
|
||||
import TZImagePickerController
|
||||
class ChatVC: BaseViewController, HiddenNavigationBarProtocol, TZImagePickerControllerDelegate{
|
||||
|
||||
// 键盘收起/弹出 滚动的时候收起输入栏
|
||||
private var isBecome: Bool = false
|
||||
@@ -57,6 +58,8 @@ class ChatVC: BaseViewController, HiddenNavigationBarProtocol {
|
||||
private func registerChatCell() {
|
||||
chatTableView.register(cellType: ChatTextCell.self)
|
||||
chatTableView.register(cellType: ChatTimeCell.self)
|
||||
chatTableView.register(cellType: ChatVoiceCell.self)
|
||||
chatTableView.register(cellType: ChatImageCell.self)
|
||||
}
|
||||
|
||||
private lazy var chatTableView: UITableView = {
|
||||
@@ -111,8 +114,20 @@ extension ChatVC: ChatKeyboardViewDelegate {
|
||||
}
|
||||
|
||||
func keyboard(_ keyboard: ChatKeyboardView, DidMoreMenu type: ChatMoreMenuType) {
|
||||
|
||||
//TODO: 点击更多
|
||||
if type == .album {
|
||||
let imagePicker = TZImagePickerController(maxImagesCount: 1, columnNumber: 5, delegate: self)
|
||||
imagePicker?.allowPickingVideo = false
|
||||
imagePicker?.modalPresentationStyle = .fullScreen
|
||||
imagePicker?.didFinishPickingPhotosHandle = {(images: [UIImage]?, assets:[Any]?, isSelectOriginalPhoto: Bool) in
|
||||
if (type == .album) {
|
||||
if let image = images?[safe:0] {
|
||||
self.vm.sendImageMessage(image: image) { _ in}
|
||||
}
|
||||
}
|
||||
}
|
||||
self.navigationController?.present(imagePicker!, animated: true)
|
||||
keyboard.hiddenMoreView()
|
||||
}
|
||||
}
|
||||
|
||||
func keyboard(_ keyboard: ChatKeyboardView, DidObserver offsetY: CGFloat) {
|
||||
@@ -123,6 +138,7 @@ extension ChatVC: ChatKeyboardViewDelegate {
|
||||
extension ChatVC {
|
||||
|
||||
func requestInfo() {
|
||||
self.navView.uid = vm.session.sessionId
|
||||
let params = ["uid": vm.session.sessionId]
|
||||
RequestGet(path: "user/get", parma: params) { data in
|
||||
if let info = Deserialized<UserObject>.toModel(with: data) {
|
||||
@@ -133,7 +149,7 @@ extension ChatVC {
|
||||
}
|
||||
|
||||
let par:[String : Any] = ["uid": AuthManager.userUid, "isLikeUid": vm.session.sessionId]
|
||||
RequestGet(path: "fans/isLike", parma: par) { data in
|
||||
RequestGet(path: "fans/islike", parma: par) { data in
|
||||
if let isLike = data as? Bool {
|
||||
self.navView.isLike = isLike
|
||||
}
|
||||
@@ -194,6 +210,7 @@ extension ChatVC {
|
||||
animated: false
|
||||
)
|
||||
}
|
||||
chatTableView.reloadData()
|
||||
}
|
||||
|
||||
public func tableViewDeleteIndexs(_ indexs: [IndexPath]) {
|
||||
@@ -211,7 +228,7 @@ extension ChatVC {
|
||||
}
|
||||
|
||||
extension ChatVC: ChatViewModelDelegate{
|
||||
public func onRecvMessages(_ messages: [NIMMessage]) {
|
||||
public func onRecvMessages1(_ messages: [NIMMessage]) {
|
||||
insertRows()
|
||||
vm.markRead(messages: messages) { error in
|
||||
|
||||
@@ -229,7 +246,9 @@ extension ChatVC: ChatViewModelDelegate{
|
||||
public func send(_ message: NIMMessage, progress: Float) {}
|
||||
|
||||
public func send(_ message: NIMMessage, didCompleteWithError error: Error?) {
|
||||
|
||||
if error == nil {
|
||||
insertRows()
|
||||
}
|
||||
}
|
||||
|
||||
private func indexPathsWithMessags(_ messages: [NIMMessage]) -> [IndexPath] {
|
||||
@@ -263,10 +282,21 @@ extension ChatVC: UITableViewDelegate, UITableViewDataSource, UIScrollViewDelega
|
||||
if model?.type == .text {
|
||||
let cell = tableView.dequeueReusableCell(for: indexPath, cellType: ChatTextCell.self)
|
||||
cell.model = model
|
||||
return cell
|
||||
} else if model?.type == .time {
|
||||
let cell = tableView.dequeueReusableCell(for: indexPath, cellType: ChatTimeCell.self)
|
||||
cell.model = model
|
||||
return cell
|
||||
} else if model?.type == .voice {
|
||||
let cell = tableView.dequeueReusableCell(for: indexPath, cellType: ChatVoiceCell.self)
|
||||
cell.model = model
|
||||
return cell
|
||||
} else if model?.type == .image {
|
||||
let cell = tableView.dequeueReusableCell(for: indexPath, cellType: ChatImageCell.self)
|
||||
cell.model = model
|
||||
return cell
|
||||
}
|
||||
|
||||
return UITableViewCell()
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user