From: liangzhenying <867174124@qq.com> Date: Wed, 5 Nov 2025 10:32:53 +0000 (+0800) Subject: AI功能调整 X-Git-Tag: 1.0.2~77 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=33a9d1cdcb5409c0cdd9f6de335c1e2b8492b9c0;p=mirrors%2FShenYin.git AI功能调整 --- diff --git a/ShenYin/ShenYin/Api/HttpClient2.swift b/ShenYin/ShenYin/Api/HttpClient2.swift index c8bad9f..35d1757 100644 --- a/ShenYin/ShenYin/Api/HttpClient2.swift +++ b/ShenYin/ShenYin/Api/HttpClient2.swift @@ -78,6 +78,8 @@ enum CommomApi case commitFeedback(param:[String:Any]) /// 获取提交的帮助与反馈 case feedbackHistory + /// 根据产品名称获取产品信息 + case productInfo(name:String) /// 获取绑定的设备列表 case deviceList /// 绑定设备 @@ -206,7 +208,9 @@ extension CommomApi{ return "/uc/feedback" case .feedbackHistory: return "/uc/feedback" - + + case .productInfo(let name): + return "/dev/product-info/by-name" case .deviceList: return "/dev/device/list" case .bindDevice(let param): @@ -314,6 +318,9 @@ extension CommomApi{ case let .commitFeedback(para): params += para break + case let .productInfo(name): + params["prodName"] = name + break case let .bindDevice(para): params += para break diff --git a/ShenYin/ShenYin/Assets.xcassets/home/chat/role_linjianvhai.imageset/Contents.json b/ShenYin/ShenYin/Assets.xcassets/home/chat/role_test_xiaoyin.imageset/Contents.json similarity index 100% rename from ShenYin/ShenYin/Assets.xcassets/home/chat/role_linjianvhai.imageset/Contents.json rename to ShenYin/ShenYin/Assets.xcassets/home/chat/role_test_xiaoyin.imageset/Contents.json diff --git "a/ShenYin/ShenYin/Assets.xcassets/home/chat/role_linjianvhai.imageset/\351\273\230\350\256\244.png" "b/ShenYin/ShenYin/Assets.xcassets/home/chat/role_test_xiaoyin.imageset/\351\273\230\350\256\244.png" similarity index 100% rename from "ShenYin/ShenYin/Assets.xcassets/home/chat/role_linjianvhai.imageset/\351\273\230\350\256\244.png" rename to "ShenYin/ShenYin/Assets.xcassets/home/chat/role_test_xiaoyin.imageset/\351\273\230\350\256\244.png" diff --git "a/ShenYin/ShenYin/Assets.xcassets/home/chat/role_linjianvhai.imageset/\351\273\230\350\256\244@2x.png" "b/ShenYin/ShenYin/Assets.xcassets/home/chat/role_test_xiaoyin.imageset/\351\273\230\350\256\244@2x.png" similarity index 100% rename from "ShenYin/ShenYin/Assets.xcassets/home/chat/role_linjianvhai.imageset/\351\273\230\350\256\244@2x.png" rename to "ShenYin/ShenYin/Assets.xcassets/home/chat/role_test_xiaoyin.imageset/\351\273\230\350\256\244@2x.png" diff --git "a/ShenYin/ShenYin/Assets.xcassets/home/chat/role_linjianvhai.imageset/\351\273\230\350\256\244@3x.png" "b/ShenYin/ShenYin/Assets.xcassets/home/chat/role_test_xiaoyin.imageset/\351\273\230\350\256\244@3x.png" similarity index 100% rename from "ShenYin/ShenYin/Assets.xcassets/home/chat/role_linjianvhai.imageset/\351\273\230\350\256\244@3x.png" rename to "ShenYin/ShenYin/Assets.xcassets/home/chat/role_test_xiaoyin.imageset/\351\273\230\350\256\244@3x.png" diff --git a/ShenYin/ShenYin/UI/Home/CallingRecordVC.swift b/ShenYin/ShenYin/UI/Home/CallingRecordVC.swift index 627dd66..cd4297c 100644 --- a/ShenYin/ShenYin/UI/Home/CallingRecordVC.swift +++ b/ShenYin/ShenYin/UI/Home/CallingRecordVC.swift @@ -149,6 +149,7 @@ extension CallingRecordVC : JoyGemCallManagerDelegate { Logger.debug( "用户主动结束") } else { Logger.debug( "自动结束") + rhythView.stopTimer() toolBar.recordBtn.isSelected = false } } diff --git a/ShenYin/ShenYin/UI/Home/Chat/ChatCell.swift b/ShenYin/ShenYin/UI/Home/Chat/ChatCell.swift index cfb25ea..aad59a1 100644 --- a/ShenYin/ShenYin/UI/Home/Chat/ChatCell.swift +++ b/ShenYin/ShenYin/UI/Home/Chat/ChatCell.swift @@ -33,7 +33,7 @@ class ChatCell:BaseTableViewCell{ } originalLabel.do { v in v.text = "你好,欢迎使用AI翻译,点击下方按钮立即开始咱们的对话吧" - v.font = .bold(14) + v.font = .medium(14) v.textColor = .hexString("#606D80") v.numberOfLines = 0 v.textAlignment = .left diff --git a/ShenYin/ShenYin/UI/Home/Chat/ChatHeaderView.swift b/ShenYin/ShenYin/UI/Home/Chat/ChatHeaderView.swift index 4cafb0a..b47b374 100644 --- a/ShenYin/ShenYin/UI/Home/Chat/ChatHeaderView.swift +++ b/ShenYin/ShenYin/UI/Home/Chat/ChatHeaderView.swift @@ -27,14 +27,14 @@ class ChatHeaderView: BaseView { v.image = UIImage(named: "chat_xiaoyin") } titleLabel.do {v in -// v.text = "嗨!我是小音" + v.text = "嗨!我是小音" v.numberOfLines = 0 v.textAlignment = .center v.textColor = .hexString("#121212") v.font = .bold(18) } desLabel.do {v in -// v.text = "我可以帮你搜索、答疑、写作,请把你的任务交给 我吧~" + v.text = "我可以帮你搜索、答疑、写作,请把你的任务交给 我吧~" v.numberOfLines = 0 v.textAlignment = .center v.textColor = .hexString("#666666") diff --git a/ShenYin/ShenYin/UI/Home/Chat/ChatVC.swift b/ShenYin/ShenYin/UI/Home/Chat/ChatVC.swift index 919fcf4..2213ff8 100644 --- a/ShenYin/ShenYin/UI/Home/Chat/ChatVC.swift +++ b/ShenYin/ShenYin/UI/Home/Chat/ChatVC.swift @@ -76,11 +76,11 @@ class ChatVC:BaseVC{ PcmSound.sharedInstance().delegate = self JoyGemChatManager.shared().addObserver(self, forKeyPath: "isActive",options: [.new, .old], context: nil); - let model = ChatCellModel() - model.type = 0 - model.content = "我是你的新朋友,有什么我可以帮助到你的?" - model.id = 0 - dataList.append(model) +// let model = ChatCellModel() +// model.type = 0 +// model.content = "我是你的新朋友,有什么我可以帮助到你的?" +// model.id = 0 +// dataList.append(model) loadRoleList() } @@ -128,11 +128,20 @@ class ChatVC:BaseVC{ JoyGemChatManager.shared().getSpeakerList {[weak self] speakers in guard let self = self,speakers.count > 0 else{return} self.roleList = speakers - self.roleItem.role = speakers.first - self.headerView.role = speakers.first + self.roleList.insert(xiaoYinRole(), at: 0) + self.roleItem.role = roleList.first + self.headerView.role = roleList.first JoyGemChatManager.shared().setSpeaker(self.roleItem.role) } } + func xiaoYinRole()->JoyGemSpeaker{ + let model = JoyGemSpeaker() + model.sid = "zh_female_tianmeitaozi_mars_bigtts" + model.name = "小音" + model.type = "default" + model.role = "test_xiaoyin" + return model + } } extension ChatVC:ChatRecordBarDelegate{ @@ -171,7 +180,11 @@ extension ChatVC:UITableViewDelegate,UITableViewDataSource { extension ChatVC : JoyGemChatManagerDelegate { func chatManager(_ manager: JoyGemChatManager, audioData data: Data?, index: UInt, sampleRate: UInt, finish isFinish: Bool) { - + if (!isTtsPlaying) { + isTtsPlaying = true + JoyGemChatManager.shared().playAudioStart() + } + PcmSound.sharedInstance().feed(data) } func chatManager(_ manager: JoyGemChatManager, stateChange code: JoyGemStateCode) { @@ -209,11 +222,7 @@ extension ChatVC : JoyGemChatManagerDelegate { } func chatManager(_ manager: JoyGemChatManager, audioData data: Data?, finish isFinish: Bool) { - if (!isTtsPlaying) { - isTtsPlaying = true - JoyGemChatManager.shared().playAudioStart() - } - PcmSound.sharedInstance().feed(data) + } func chatManager(_ manager: JoyGemChatManager, requestText text: String?, index: UInt) { diff --git a/ShenYin/ShenYin/UI/Home/Chat/NavigationBarItem.swift b/ShenYin/ShenYin/UI/Home/Chat/NavigationBarItem.swift index 53dc5a3..1f5b700 100644 --- a/ShenYin/ShenYin/UI/Home/Chat/NavigationBarItem.swift +++ b/ShenYin/ShenYin/UI/Home/Chat/NavigationBarItem.swift @@ -6,6 +6,8 @@ // import UIKit import JoyGemAI + + class NavigationBarItem: BaseView { let icon = UIImageView() let titleLabel = UILabel() @@ -20,6 +22,7 @@ class NavigationBarItem: BaseView { v.textColor = .rgb(0x121212) v.font = .bold(14) v.text = "智能体" + v.isHidden = true } } diff --git a/ShenYin/ShenYin/UI/Home/Chinese2English/Chinese2EnglishCell.swift b/ShenYin/ShenYin/UI/Home/Chinese2English/Chinese2EnglishCell.swift index 3a5d655..483e123 100644 --- a/ShenYin/ShenYin/UI/Home/Chinese2English/Chinese2EnglishCell.swift +++ b/ShenYin/ShenYin/UI/Home/Chinese2English/Chinese2EnglishCell.swift @@ -23,7 +23,7 @@ class Chinese2EnglishCell:BaseTableViewCell{ let line = BrokenLineView() let originalLabel = UILabel() let translationLabel = UILabel() - let copyIcon = UIImageView() + let playIcon = UIImageView() override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) @@ -56,15 +56,16 @@ class Chinese2EnglishCell:BaseTableViewCell{ line.do { v in // v.backgroundColor = .hexString("#93C6EC") } - copyIcon.do { v in + playIcon.do { v in v.image = UIImage(named: "play_animate_3") v.animationImages = [UIImage(named: "play_animate_1")!,UIImage(named: "play_animate_2")!,UIImage(named: "play_animate_3")!] v.animationDuration = 0.6 v.animationRepeatCount = 0 - v.yc.addTap(target: self, action: #selector(copyAction)) + v.yc.addTap(target: self, action: #selector(playAction)) + v.isHidden = true } contentView.addSubview(bgView) - bgView.addSubviews([originalLabel,translationLabel,line,copyIcon]) + bgView.addSubviews([originalLabel,translationLabel,line,playIcon]) } override func setupLayout() { @@ -91,7 +92,7 @@ class Chinese2EnglishCell:BaseTableViewCell{ make.width.lessThanOrEqualTo(kScreenWid - 82) make.bottom.equalToSuperview().inset(47) } - copyIcon.snp.makeConstraints { make in + playIcon.snp.makeConstraints { make in make.right.equalToSuperview().inset(12) make.size.equalTo(24) make.bottom.equalToSuperview().inset(10) @@ -104,14 +105,14 @@ class Chinese2EnglishCell:BaseTableViewCell{ translationLabel.text = data.response } } - @objc func copyAction(){ + @objc func playAction(){ // UIPasteboard.general.string = data.send + "\n" + data.response // YLprogressHUD.showAutoHiden("已拷贝") - if copyIcon.isAnimating { - copyIcon.stopAnimating() + if playIcon.isAnimating { + playIcon.stopAnimating() } else{ - copyIcon.startAnimating() + playIcon.startAnimating() } } } diff --git a/ShenYin/ShenYin/UI/Home/Chinese2English/Chinese2EnglishVC.swift b/ShenYin/ShenYin/UI/Home/Chinese2English/Chinese2EnglishVC.swift index dbae000..d7e67c8 100644 --- a/ShenYin/ShenYin/UI/Home/Chinese2English/Chinese2EnglishVC.swift +++ b/ShenYin/ShenYin/UI/Home/Chinese2English/Chinese2EnglishVC.swift @@ -12,9 +12,10 @@ class Chinese2EnglishVC:BaseVC{ let toolBar = RecordBar() let tableView = UITableView(frame: CGRectZero, style: .plain) let bg = UIImageView() - var dataList:[(Chinese2EnglishCellModel,UInt)] = [] + var dataList:[(Chinese2EnglishCellModel,Int)] = [] var pcmData = Data() var recordFilePath : String? + var startIndex = 0//记录开始录音的次数,用于区分返回的数据 override func setupViews() { navBar.title = "中英互译" @@ -110,9 +111,7 @@ extension Chinese2EnglishVC:RecordBarDelegate{ func recordBar(_ bar: RecordBar, stateChange state: RecordBarSate) { if state == .start { pcmData = Data() - dataList.removeAll() - refreshData() - + startIndex += 100000 JoyGemSIDeviceManager.shared().originalLanguage = bar.leftItem.language.value JoyGemSIDeviceManager.shared().targetLanguage = bar.rightItem.language.value JoyGemSIDeviceManager.shared().start() @@ -125,37 +124,6 @@ extension Chinese2EnglishVC:RecordBarDelegate{ } else if state == .stop{ JoyGemSIDeviceManager.shared().stop() - bar.startAnimating {[weak self] in - guard let self = self else{return} - // toolBar.recordBtn.stopCli() - guard let path = recordFilePath,let wavPath = DCFolder.recordFileResave(srcPath: path) else{return} - let v = PopTextField() - v.show() - v.cancelTap = { - - } - v.okTap = { [weak self] text in - guard let self = self else{return} - var origin = "" - var translate = "" - for (item,_) in dataList { - origin += item.send + "\n" - translate += item.response + "\n" - } - - - let model = RecordDetailModel() - model.type = .translate - model.from = bar.leftItem.language - model.to = bar.rightItem.language - model.name = text - model.path = wavPath - model.duration = YLToos.getDuration(model.path) - model.origin = origin - model.translate = translate - App.shared.goToPage(RecordDetailVC(record: model)) - } - } } } } @@ -186,10 +154,10 @@ extension Chinese2EnglishVC:JoyGemSIDeviceManagerDelegate{ func siDeviceManager(_ manager: JoyGemSIDeviceManager, didUpdateRaw model: JoyGemAsrModel) { Logger.debug("text: \(model.text),index: \(model.index)") let msg = dataList.firstIndex (where: { (str,idx) in - return idx == model.index; + return idx == Int(model.index) + startIndex }) if (msg == nil) { - dataList.append((Chinese2EnglishCellModel(send: model.text),model.index)) + dataList.append((Chinese2EnglishCellModel(send: model.text),Int(model.index) + startIndex)) } else { let (item,_) = dataList[msg!] item.send = model.text @@ -204,10 +172,10 @@ extension Chinese2EnglishVC:JoyGemSIDeviceManagerDelegate{ func siDeviceManager(_ manager: JoyGemSIDeviceManager, didUpdateTranslate model: JoyGemAsrModel) { let msg = dataList.firstIndex (where: { (str,idx) in - return idx == model.index; + return idx == Int(model.index) + startIndex }) if (msg == nil) { - dataList.append((Chinese2EnglishCellModel(response: model.text),model.index)) + dataList.append((Chinese2EnglishCellModel(response: model.text),Int(model.index) + startIndex)) } else { let (item,_) = dataList[msg!] item.response = model.text diff --git a/ShenYin/ShenYin/UI/Home/Dialog/DialogSplitView.swift b/ShenYin/ShenYin/UI/Home/Dialog/DialogSplitView.swift index 8c99724..24bdd2b 100644 --- a/ShenYin/ShenYin/UI/Home/Dialog/DialogSplitView.swift +++ b/ShenYin/ShenYin/UI/Home/Dialog/DialogSplitView.swift @@ -104,7 +104,7 @@ extension DialogSplitView:UITableViewDelegate,UITableViewDataSource { class DialogSplitCell:BaseTableViewCell{ let bgView = UIView() let originalLabel = UILabel() - let copyIcon = UIImageView() + let playIcon = UIImageView() override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) @@ -128,15 +128,15 @@ class DialogSplitCell:BaseTableViewCell{ v.numberOfLines = 0 v.textAlignment = .left } - copyIcon.do { v in + playIcon.do { v in v.image = UIImage(named: "play_animate_3") v.animationImages = [UIImage(named: "play_animate_1")!,UIImage(named: "play_animate_2")!,UIImage(named: "play_animate_3")!] v.animationDuration = 0.6 v.animationRepeatCount = 0 - v.yc.addTap(target: self, action: #selector(copyAction)) + v.yc.addTap(target: self, action: #selector(playAction)) } contentView.addSubview(bgView) - bgView.addSubviews([originalLabel,copyIcon]) + bgView.addSubviews([originalLabel,playIcon]) } override func setupLayout() { @@ -148,7 +148,7 @@ class DialogSplitCell:BaseTableViewCell{ make.right.equalToSuperview().inset(50) make.bottom.equalToSuperview().inset(14) } - copyIcon.snp.makeConstraints { make in + playIcon.snp.makeConstraints { make in make.right.equalToSuperview().inset(12) make.size.equalTo(24) make.top.equalToSuperview().inset(12) @@ -201,14 +201,12 @@ class DialogSplitCell:BaseTableViewCell{ } } - @objc func copyAction(){ - // UIPasteboard.general.string = data.send + "\n" + data.response - // YLprogressHUD.showAutoHiden("已拷贝") - if copyIcon.isAnimating { - copyIcon.stopAnimating() + @objc func playAction(){ + if playIcon.isAnimating { + playIcon.stopAnimating() } else{ - copyIcon.startAnimating() + playIcon.startAnimating() } } } diff --git a/ShenYin/ShenYin/UI/Home/Dialog/DialogTranslateCell.swift b/ShenYin/ShenYin/UI/Home/Dialog/DialogTranslateCell.swift index b98a949..b1b3bfd 100644 --- a/ShenYin/ShenYin/UI/Home/Dialog/DialogTranslateCell.swift +++ b/ShenYin/ShenYin/UI/Home/Dialog/DialogTranslateCell.swift @@ -25,7 +25,7 @@ class DialogTranslateCell:BaseTableViewCell{ let line = BrokenLineView() let originalLabel = UILabel() let translationLabel = UILabel() - let copyIcon = UIImageView() + let playIcon = UIImageView() override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) @@ -58,15 +58,16 @@ class DialogTranslateCell:BaseTableViewCell{ line.do { v in v.backgroundColor = .hexString("#93C6EC") } - copyIcon.do { v in + playIcon.do { v in v.image = UIImage(named: "play_animate_3") v.animationImages = [UIImage(named: "play_animate_1")!,UIImage(named: "play_animate_2")!,UIImage(named: "play_animate_3")!] v.animationDuration = 0.6 v.animationRepeatCount = 0 - v.yc.addTap(target: self, action: #selector(copyAction)) + v.yc.addTap(target: self, action: #selector(playAction)) + v.isHidden = true } contentView.addSubview(bgView) - bgView.addSubviews([originalLabel,translationLabel,line,copyIcon]) + bgView.addSubviews([originalLabel,translationLabel,line,playIcon]) } override func setupLayout() { @@ -96,7 +97,7 @@ class DialogTranslateCell:BaseTableViewCell{ make.height.greaterThanOrEqualTo(15) make.bottom.equalToSuperview().inset(14) } - copyIcon.snp.makeConstraints { make in + playIcon.snp.makeConstraints { make in make.right.equalToSuperview().inset(12) make.size.equalTo(24) make.top.equalToSuperview().inset(12) @@ -132,14 +133,14 @@ class DialogTranslateCell:BaseTableViewCell{ line.layoutIfNeeded() } } - @objc func copyAction(){ + @objc func playAction(){ // UIPasteboard.general.string = data.send + "\n" + data.response // YLprogressHUD.showAutoHiden("已拷贝") - if copyIcon.isAnimating { - copyIcon.stopAnimating() + if playIcon.isAnimating { + playIcon.stopAnimating() } else{ - copyIcon.startAnimating() + playIcon.startAnimating() } } } diff --git a/ShenYin/ShenYin/UI/Home/Scan/DeviceVM.swift b/ShenYin/ShenYin/UI/Home/Scan/DeviceVM.swift index aa1166e..f33849d 100644 --- a/ShenYin/ShenYin/UI/Home/Scan/DeviceVM.swift +++ b/ShenYin/ShenYin/UI/Home/Scan/DeviceVM.swift @@ -48,9 +48,22 @@ extension DeviceVM{ BleManager.shared.stopScanDevice() } static func startConnecte(_ data:DCPeripheral){ - ConnectPopView.shared.stateDidChange(.connecting) - BleManager.shared.connectPeripheral(data) - + guard let name = data.device.name else { + return + } + getProductInfo(name: name) { model in + if let info = model{ + ConnectPopView.shared.titleLabel.text = name + ConnectPopView.shared.imageView.kf.setImage(with: info.image.yc.asUrl) + ConnectPopView.shared.stateDidChange(.connecting) + } + else{ + ConnectPopView.shared.titleLabel.text = name + ConnectPopView.shared.stateDidChange(.connecting) + } + BleManager.shared.connectPeripheral(data) + + } } /// 带冒号 static func getDeviceInfo(_ device:DCPeripheral){ @@ -115,6 +128,18 @@ extension DeviceVM{ } return result } + + static func getProductInfo(name:String,finished:@escaping ((_ model:ProductInfoModel?)->Void)){ + let api = CommomApi.productInfo(name: name) + HttpClient.request(api) {(model:ProductInfoModelRoot,res) in + if model.isSuccess{ + finished(model.data) + } + else{ + finished(nil) + } + } + } } extension DeviceVM{ diff --git a/ShenYin/ShenYin/UI/Home/Scan/ProductInfoModel.swift b/ShenYin/ShenYin/UI/Home/Scan/ProductInfoModel.swift new file mode 100644 index 0000000..fcef718 --- /dev/null +++ b/ShenYin/ShenYin/UI/Home/Scan/ProductInfoModel.swift @@ -0,0 +1,20 @@ +// +// Untitled.swift +// ShenYin +// +// Created by liangshi on 2025/11/5. +// + +import HandyJSON + +class ProductInfoModelRoot:ResponseBaseModel { + var data = ProductInfoModel() +} +class ProductInfoModel:HandyJSON { + var id = "" + var name = "" + var image = "" + var description = "" + required public init() { } +} + diff --git a/ShenYin/ShenYin/UI/Launch/JoySdkManager.swift b/ShenYin/ShenYin/UI/Launch/JoySdkManager.swift index 64f2405..d8dade2 100644 --- a/ShenYin/ShenYin/UI/Launch/JoySdkManager.swift +++ b/ShenYin/ShenYin/UI/Launch/JoySdkManager.swift @@ -16,8 +16,8 @@ class JoySdkManager:NSObject{ //MARK: 初始化SDK JoyGemAIManager.shared().initSdk() //MARK: 配置日志类型 - JoyGemAIManager.shared().setLogMode(JoyGemLogMode.all) - +// JoyGemAIManager.shared().setLogMode(JoyGemLogMode.all) + JoyGemAIManager.shared().setLogMode(JoyGemLogMode.close) let fileManager = FileManager.default if let appSupportDirectory = fileManager.urls(for: .applicationSupportDirectory, in: .userDomainMask).first { diff --git a/ShenYin/ShenYin/UI/Mine/Root/MineHeaderView.swift b/ShenYin/ShenYin/UI/Mine/Root/MineHeaderView.swift index 94c8143..74281dd 100644 --- a/ShenYin/ShenYin/UI/Mine/Root/MineHeaderView.swift +++ b/ShenYin/ShenYin/UI/Mine/Root/MineHeaderView.swift @@ -86,7 +86,7 @@ class MineUserInfoView: BaseView { m.top.equalToSuperview().inset(60) m.left.equalToSuperview().inset(38) m.height.equalTo(30) - m.width.equalTo(120) + m.width.equalTo(130) } icon.snp.makeConstraints { (m) in m.size.equalTo(80) diff --git a/ShenYin/ShenYin/UI/common/pop/ConnectPopView.swift b/ShenYin/ShenYin/UI/common/pop/ConnectPopView.swift index ec0e19d..8d982fd 100644 --- a/ShenYin/ShenYin/UI/common/pop/ConnectPopView.swift +++ b/ShenYin/ShenYin/UI/common/pop/ConnectPopView.swift @@ -27,8 +27,8 @@ enum ConnectPopState { class ConnectPopView: BasePresentView2 { static let shared = ConnectPopView() let contentView = UIView() - private let titleLabel = UILabel() - private let imageView = UIImageView() + let titleLabel = UILabel() + let imageView = UIImageView() private let desLabel = UILabel()