Files
yinmeng-ios-store/yinmeng-ios/yinmeng-ios/Swift/MewRoomPlay/MewView/MewSubView/MewRoomTransferMsgView.swift
2024-01-20 11:02:21 +08:00

114 lines
4.2 KiB
Swift

//
// MewRoomTransferMsgView.swift
// yinmeng-ios
//
// Created by duoban on 2024/1/16.
//
import UIKit
class MewRoomTransferMsgView: UIView {
@objc public lazy var mewTextView:UITextField = {
let _mewTextView = UITextField()
let att = NSMutableAttributedString(string: "请输入消息...", attributes: [.font:UIFont.systemFont(ofSize: 15),.foregroundColor:R.color.mewRoomMsgTextColor() ?? UIColor.white])
_mewTextView.attributedPlaceholder = att
_mewTextView.borderStyle = UITextField.BorderStyle.none
_mewTextView.textColor = R.color.mewAppMainTextColor()
_mewTextView.font = UIFont.systemFont(ofSize: 15)
_mewTextView .addTarget(self, action: #selector(mewTextFieldDidChange(_ :)), for: .editingChanged)
return _mewTextView
}()
@objc public var mewUserData:MewPersonInfoModel?
@objc public var mewRoomData:MewRoomPlayModel?
let mewSendBtn:UIButton = {
let _mewSendBtn = UIButton()
_mewSendBtn.setTitle("发送", for: .normal)
_mewSendBtn.setTitleColor(R.color.mewAppMainTextColor(), for: .normal)
_mewSendBtn.layer.cornerRadius = 5
_mewSendBtn.layer.masksToBounds = true
_mewSendBtn.isEnabled = false
_mewSendBtn.backgroundColor = R.color.mewRoomSendMsgColor()
_mewSendBtn.titleLabel?.font = UIFont.systemFont(ofSize: 15)
_mewSendBtn.addTarget(self, action: #selector(mewSendMsgAction), for: .touchUpInside)
return _mewSendBtn
}()
@objc private func mewSendMsgAction(){
if self.mewTextView.text?.count == 0{
return
}
let extData = MewMsgExtDataModel()
extData.erbanNo = self.mewUserData?.erbanNo ?? 0;
extData.newUser = self.mewUserData?.newUser ?? false;
let msg = NIMMessage()
msg.text = self.mewTextView.text
let remoteExt = NSMutableDictionary()
let uid = MewSaveBaseUserModel.share().mewGetUserId()
remoteExt[uid] = extData.mj_keyValues().copy()
msg.remoteExt = remoteExt as? [AnyHashable : Any]
let mewOption = NIMAntiSpamOption()
mewOption.yidunEnabled = true
mewOption.businessId = MewEncryptManager.mewAESDecryptText("EhdbQun+WXkne5z3pctmR/3144MiHQbb+Dw1kIia3a+TcSiMNCCZgxUwTjE3XVDH")
msg.antiSpamOption = mewOption
if let msgId = self.mewRoomData?.roomId{
let msgIdText = String(format:"%ld",msgId)
let session = NIMSession(msgIdText, type: .chatroom)
NIMSDK.shared().chatManager.send(msg, to: session) { error in
self.mewTextView.text = ""
self.mewTextView.resignFirstResponder()
}
}
}
override init(frame: CGRect) {
super.init(frame: frame)
mewSetUI()
mewSetUIFrame()
mewSetNot()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private func mewSetUI(){
self.backgroundColor = .white
addSubview(mewTextView)
addSubview(mewSendBtn)
}
private func mewSetUIFrame(){
mewTextView.snp.makeConstraints { make in
make.left.equalTo(self).offset(8);
make.right.equalTo(self).offset(-60);
make.top.bottom.equalTo(self);
}
mewSendBtn.snp.makeConstraints { make in
make.width.equalTo(50);
make.top.bottom.equalTo(self).inset(5);
make.right.equalTo(self).offset(-5);
}
}
@objc private func mewkeyboardWillShow(_ not:Notification){
}
@objc private func mewkeyboardWillHidden(_ not:Notification){
self.removeFromSuperview()
}
@objc private func mewTextFieldDidChange(_ textField:UITextField){
mewSendBtn.isEnabled = ((textField.text?.isEmpty) != nil)
}
private func mewSetNot(){
NotificationCenter.default.addObserver(self, selector: #selector(mewkeyboardWillShow(_:)), name:UIResponder.keyboardWillShowNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(mewkeyboardWillHidden(_:)), name:UIResponder.keyboardWillHideNotification, object: nil)
}
}