私聊完成

This commit is contained in:
fengshuo
2024-03-01 15:39:53 +08:00
parent 41ad01515d
commit 6b87cffe44
28 changed files with 4674 additions and 4126 deletions

View File

@@ -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()
}