改了对话翻译UI布局
authorliangzhenying <867174124@qq.com>
Tue, 31 Mar 2026 08:02:40 +0000 (16:02 +0800)
committerliangzhenying <867174124@qq.com>
Tue, 31 Mar 2026 08:02:40 +0000 (16:02 +0800)
14 files changed:
ShenYin/ShenYin/Channel/DeepChords/Channel/UI/JoyDialogTranslateVC.swift
ShenYin/ShenYin/Channel/DeepChords/Channel/UI/JoyHomeVC.swift
ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Contents.json
ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Group_2437@2x.png [deleted file]
ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Group_2437@3x.png [deleted file]
ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Slice 387@2x.png [new file with mode: 0644]
ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Slice 387@3x.png [new file with mode: 0644]
ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Contents.json
ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Group_2435@2x.png [deleted file]
ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Group_2435@3x.png [deleted file]
ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Slice 388@2x.png [new file with mode: 0644]
ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Slice 388@3x.png [new file with mode: 0644]
ShenYin/ShenYin/Channel/PLAYBOY/Channel/UI/PbDialogTranslateVC.swift
ShenYin/ShenYin/UI/Home/Dialog/DialogRecordBar.swift

index c8fb86a..2aac8b3 100644 (file)
@@ -61,7 +61,10 @@ class JoyDialogTranslateVC:BaseVC{
             make.bottom.equalTo(toolBar.snp.top)
         }
         splitView.snp.makeConstraints { make in
-            make.edges.equalTo(tableView)
+            make.top.equalToSuperview().inset(kNavBtm + 10)
+            make.left.equalToSuperview()
+            make.width.equalTo(kScreenWid)
+            make.bottom.equalTo(toolBar.snp.top)
         }
     }
     override func setupData() {
@@ -161,8 +164,8 @@ extension JoyDialogTranslateVC:DialogRecordBarDelegate{
         dataList.append(model)
         refreshData()
         
-        JoyGemSIManager.shared().originalLanguage = toolBar.languageView.rightItem.language.value
-        JoyGemSIManager.shared().targetLanguage = toolBar.languageView.leftItem.language.value
+        JoyGemSIManager.shared().originalLanguage = toolBar.rightItem.languageItem.language.value
+        JoyGemSIManager.shared().targetLanguage = toolBar.leftItem.languageItem.language.value
         Logger.debug("源语言",JoyGemSIManager.shared().originalLanguage)
         Logger.debug("目标语言",JoyGemSIManager.shared().targetLanguage)
         JoyGemSIManager.shared().start()
@@ -180,8 +183,8 @@ extension JoyDialogTranslateVC:DialogRecordBarDelegate{
         dataList.append(model)
         refreshData()
         
-        JoyGemSIDeviceManager.shared().originalLanguage = toolBar.languageView.leftItem.language.value
-        JoyGemSIDeviceManager.shared().targetLanguage = toolBar.languageView.rightItem.language.value
+        JoyGemSIDeviceManager.shared().originalLanguage = toolBar.leftItem.languageItem.language.value
+        JoyGemSIDeviceManager.shared().targetLanguage = toolBar.rightItem.languageItem.language.value
         JoyGemSIDeviceManager.shared().start()
         do {
             try AVAudioSession.sharedInstance().setCategory(.playAndRecord, options: [.defaultToSpeaker])
index ba0208b..1d0b078 100644 (file)
@@ -171,8 +171,10 @@ extension JoyHomeVC:UICollectionViewDataSource,UICollectionViewDelegate,UICollec
         return cell
     }
     func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
-        let model = DeviceVM.shared.dataList[indexPath.row]
-        App.shared.goToPage(JoyAiFunctionVC(device: model))
+//        let model = DeviceVM.shared.dataList[indexPath.row]
+//        App.shared.goToPage(JoyAiFunctionVC(device: model))
+        App.shared.goToPage(JoyDialogTranslateVC())
+        
     }
     func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView{
             let header = HomeHeadInfoView.header(with: collectionView, indexPath: indexPath)
index 6d169ae..12d787e 100644 (file)
@@ -5,12 +5,12 @@
       "scale" : "1x"
     },
     {
-      "filename" : "Group_2437@2x.png",
+      "filename" : "Slice 387@2x.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
-      "filename" : "Group_2437@3x.png",
+      "filename" : "Slice 387@3x.png",
       "idiom" : "universal",
       "scale" : "3x"
     }
diff --git a/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Group_2437@2x.png b/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Group_2437@2x.png
deleted file mode 100644 (file)
index 275aaab..0000000
Binary files a/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Group_2437@2x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Group_2437@3x.png b/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Group_2437@3x.png
deleted file mode 100644 (file)
index 752bfa3..0000000
Binary files a/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Group_2437@3x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Slice 387@2x.png b/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Slice 387@2x.png
new file mode 100644 (file)
index 0000000..f87b07b
Binary files /dev/null and b/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Slice 387@2x.png differ
diff --git a/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Slice 387@3x.png b/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Slice 387@3x.png
new file mode 100644 (file)
index 0000000..7f7c5f7
Binary files /dev/null and b/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_ear.imageset/Slice 387@3x.png differ
index b7db985..e02f50f 100644 (file)
@@ -5,12 +5,12 @@
       "scale" : "1x"
     },
     {
-      "filename" : "Group_2435@2x.png",
+      "filename" : "Slice 388@2x.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
-      "filename" : "Group_2435@3x.png",
+      "filename" : "Slice 388@3x.png",
       "idiom" : "universal",
       "scale" : "3x"
     }
diff --git a/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Group_2435@2x.png b/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Group_2435@2x.png
deleted file mode 100644 (file)
index 1fe725e..0000000
Binary files a/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Group_2435@2x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Group_2435@3x.png b/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Group_2435@3x.png
deleted file mode 100644 (file)
index 62a8eab..0000000
Binary files a/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Group_2435@3x.png and /dev/null differ
diff --git a/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Slice 388@2x.png b/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Slice 388@2x.png
new file mode 100644 (file)
index 0000000..d589e3c
Binary files /dev/null and b/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Slice 388@2x.png differ
diff --git a/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Slice 388@3x.png b/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Slice 388@3x.png
new file mode 100644 (file)
index 0000000..a6b0e0b
Binary files /dev/null and b/ShenYin/ShenYin/Channel/DeepChords/DeepChords.xcassets/home/dialog_device_phone.imageset/Slice 388@3x.png differ
index 12f9ac6..7c37d02 100644 (file)
@@ -60,7 +60,10 @@ class PbDialogTranslateVC:BaseVC{
             make.bottom.equalTo(toolBar.snp.top)
         }
         splitView.snp.makeConstraints { make in
-            make.edges.equalTo(tableView)
+            make.top.equalToSuperview().inset(kNavBtm + 10)
+            make.left.equalToSuperview()
+            make.width.equalTo(kScreenWid)
+            make.bottom.equalTo(toolBar.snp.top)
         }
     }
     override func setupData() {
@@ -294,8 +297,8 @@ extension PbDialogTranslateVC:DialogRecordBarDelegate{
         dataList.append(model)
         refreshData()
         
-        DCZh2En.shared.fromLanguage = toolBar.languageView.rightItem.language.value
-        DCZh2En.shared.toLanguage = toolBar.languageView.leftItem.language.value
+        DCZh2En.shared.fromLanguage = toolBar.rightItem.languageItem.language.value
+        DCZh2En.shared.toLanguage = toolBar.leftItem.languageItem.language.value
         DCZh2En.shared.isTranslate = true
         DCZh2En.shared.isTTs = true
         DCZh2En.shared.start()
@@ -314,8 +317,8 @@ extension PbDialogTranslateVC:DialogRecordBarDelegate{
         dataList.append(model)
         refreshData()
         
-        DCBleRecord.shared.fromLanguage = toolBar.languageView.leftItem.language.value
-        DCBleRecord.shared.toLanguage = toolBar.languageView.rightItem.language.value
+        DCBleRecord.shared.fromLanguage = toolBar.leftItem.languageItem.language.value
+        DCBleRecord.shared.toLanguage = toolBar.rightItem.languageItem.language.value
         DCBleRecord.shared.isTranslate = true
         DCBleRecord.shared.isTTs = true
         DCBleRecord.shared.start()
index 835131c..43677b1 100644 (file)
@@ -23,125 +23,172 @@ protocol DialogRecordBarDelegate:NSObject {
 }
 
 class DialogRecordBar: BaseView {
-    let recordView = DialogRecordView()
-    let languageView = DialogLanguageView()
+    let leftItem = DialogItem()
+    let rightItem = DialogItem()
+    let switchBtn = UIButton()
+
+    
     weak var delegate:DialogRecordBarDelegate?
     var navBar:BaseNavigationBar = BaseNavigationBar()
     
+    var isBusy:Bool{
+        return leftItem.recordItem.activeView.animating || leftItem.recordItem.loadView.animating || rightItem.recordItem.activeView.animating || rightItem.recordItem.loadView.animating
+    }
+    
     override func setupViews() {
         backgroundColor = .clear
-        addSubviews([recordView,languageView])
         
-        recordView.do { v in
-//            v.backgroundColor = .green
-            v.switchBtn.addTarget(self, action: #selector(switchBtnAction), for: .touchUpInside)
-            v.leftRecord.addTarget(self, action: #selector(leftRecordBtnAction), for: .touchUpInside)
-            v.rightRecord.addTarget(self, action: #selector(rightRecordBtnAction), for: .touchUpInside)
+        addSubviews([leftItem,rightItem,switchBtn])
+        switchBtn.do { v in
+            v.setImage(UIImage(named: "split_screen_1"), for: .normal)
+            v.setImage(UIImage(named: "split_screen_2"), for: .selected)
+            v.addTarget(self, action: #selector(switchBtnAction), for: .touchUpInside)
+            //                v.backgroundColor = .red
+            
         }
-
-        languageView.do { (v) in
-            v.leftItem.yc.addTap(target: self, action: #selector(leftLanguageAction))
-            v.rightItem.yc.addTap(target: self, action: #selector(rightLanguageAction))
+        leftItem.do { v in
+            v.recordItem.setImage(UIImage(named: "dialog_device_ear"), for: .normal)
+            v.recordItem.setImage(UIImage(named: "dialog_device_ear"), for: .selected)
             
-            v.leftItem.language = AiLanguageCache.get(type: .dialog_left) ?? .chinse
-            v.rightItem.language = AiLanguageCache.get(type: .dialog_right) ?? .english
+            v.recordItem.addTarget(self, action: #selector(leftRecordBtnAction), for: .touchUpInside)
+            v.languageItem.yc.addTap(target: self, action: #selector(leftLanguageAction))
+            v.languageItem.language = AiLanguageCache.get(type: .dialog_left) ?? .chinse
+//            v.languageItem.valueLabel.text = CCConfig.deviceType
+        }
+        rightItem.do { v in
+            v.recordItem.setImage(UIImage(named: "dialog_device_phone"), for: .normal)
+            v.recordItem.setImage(UIImage(named: "dialog_device_phone"), for: .selected)
+            v.recordItem.activeView.tintColor = UIColor.color(.theme)
+            v.recordItem.activeView.yc.setBorder(width: 2, color: .color(.theme), radius: 17)
+            v.recordItem.loadView.tintColor = UIColor.color(.theme)
+            
+            v.recordItem.addTarget(self, action: #selector(rightRecordBtnAction), for: .touchUpInside)
+            v.languageItem.yc.addTap(target: self, action: #selector(rightLanguageAction))
+            v.languageItem.language = AiLanguageCache.get(type: .dialog_right) ?? .english
+//            v.languageItem.valueLabel.text = "手机".l10n
+//            v.backgroundColor = .red
         }
     }
-    
+
     override func setupLayout() {
-        recordView.snp.makeConstraints { make in
-            make.width.equalToSuperview()
-            make.height.equalTo(34)
+        switchBtn.snp.remakeConstraints { make in
+            make.size.equalTo(38)
+            make.centerX.equalToSuperview()
+            make.top.equalToSuperview().inset(10)
+        }
+        leftItem.snp.remakeConstraints { make in
+            make.width.equalTo(90)
+            make.height.equalTo(98)
+            make.top.equalToSuperview().inset(10)
+            make.right.equalToSuperview().offset(-(kScreenWid/2 + 60))
+        }
+        rightItem.snp.remakeConstraints { make in
+            make.width.equalTo(90)
+            make.height.equalTo(leftItem)
             make.top.equalToSuperview().inset(10)
-            make.left.equalToSuperview()
+            make.left.equalToSuperview().offset(kScreenWid/2 + 60)
         }
-        languageView.snp.makeConstraints { make in
-            make.width.equalToSuperview()
-            make.top.equalTo(recordView.snp.bottom)
-            make.left.equalToSuperview()
-            make.height.equalTo(60)
+    }
+    func splitLayout(){
+        switchBtn.snp.remakeConstraints { make in
+            make.size.equalTo(38)
+            make.right.equalToSuperview().inset(36)
+            make.top.equalToSuperview().inset(10)
+        }
+        leftItem.snp.remakeConstraints { make in
+            make.width.equalTo(90)
+            make.height.equalTo(98)
+            make.top.equalToSuperview().inset(10)
+            make.right.equalToSuperview().offset(-(kScreenWid/2 - 33))
         }
     }
-    
     func stopRecord(_ type:DialogRecordDeviceType){
         if type == .earphone {
-            recordView.leftRecord.isSelected = false
-            recordView.leftRecord.stopAnimating(finished: { [weak self] in
+            leftItem.recordItem.isSelected = false
+            leftItem.recordItem.stopAnimating(finished: { [weak self] in
                 guard let self = self else { return  }
-                recordView.leftRecord.alpha = 1
-                languageView.leftItem.alpha = 1
-                recordView.rightRecord.alpha = 1
-                languageView.rightItem.alpha = 1
+                leftItem.recordItem.alpha = 1
+                leftItem.languageItem.alpha = 1
+                rightItem.recordItem.alpha = 1
+                rightItem.languageItem.alpha = 1
             })
         }
         else{
-            recordView.rightRecord.isSelected = false
-            recordView.rightRecord.stopAnimating(finished: { [weak self] in
+            rightItem.recordItem.isSelected = false
+            rightItem.recordItem.stopAnimating(finished: { [weak self] in
                 guard let self = self else { return  }
-                recordView.leftRecord.alpha = 1
-                languageView.leftItem.alpha = 1
-                recordView.rightRecord.alpha = 1
-                languageView.rightItem.alpha = 1
+                leftItem.recordItem.alpha = 1
+                leftItem.languageItem.alpha = 1
+                rightItem.recordItem.alpha = 1
+                rightItem.languageItem.alpha = 1
             })
         }
     }
 
     @objc func switchBtnAction(){
-        recordView.switchBtn.isSelected = !recordView.switchBtn.isSelected
-        let type:DialogRecordLayoutType = recordView.switchBtn.isSelected ?  .spolit:.normal
+        switchBtn.isSelected = !switchBtn.isSelected
+        let type:DialogRecordLayoutType = switchBtn.isSelected ?  .spolit:.normal
         delegate?.recordBar(self, layoutChange: type)
         
         if type == .normal {
             navBar.titleLabel.isHidden = false
-            recordView.addSubview(recordView.rightRecord)
-            recordView.setupLayout()
+            addSubview(rightItem)
+            setupLayout()
+            rightItem.setupLayout()
+            navBar.frame = CGRectMake(0, 0, kScreenWid, kNavBtm)
+            rightItem.transform = CGAffineTransform(rotationAngle: .pi*2)
         }
         else{
-            recordView.splitLayout()
+            splitLayout()
+            rightItem.setupLayout()
+            rightItem.transform = CGAffineTransform(rotationAngle: .pi)
             
             navBar.titleLabel.isHidden = true
-            navBar.addSubview(recordView.rightRecord)
-            recordView.rightRecord.snp.makeConstraints { make in
-                make.center.equalTo(navBar.titleLabel)
+            navBar.addSubview(rightItem)
+            navBar.frame = CGRectMake(0, 0, kScreenWid, kNavBtm + 10)
+            navBar.superview?.bringSubviewToFront(navBar)
+            rightItem.snp.remakeConstraints { make in
+                make.centerX.equalToSuperview()
+                make.bottom.equalToSuperview()
+                make.width.height.equalTo(leftItem)
             }
         }
     }
     
     @objc func leftRecordBtnAction(){
-        if  recordView.rightRecord.activeView.animating || recordView.rightRecord.loadView.animating {
+        if  self.isBusy {
             return
         }
 
-        recordView.leftRecord.isSelected = !recordView.leftRecord.isSelected
-        if  recordView.leftRecord.isSelected {
-            recordView.leftRecord.alpha = 1
-            recordView.rightRecord.alpha = 0.3
-            languageView.leftItem.alpha = 0.3
-            languageView.rightItem.alpha = 0.3
+        leftItem.recordItem.isSelected = !leftItem.recordItem.isSelected
+        if  leftItem.recordItem.isSelected {
+            leftItem.recordItem.alpha = 1
+            leftItem.languageItem.alpha = 0.3
+            rightItem.recordItem.alpha = 0.3
+            rightItem.languageItem.alpha = 0.3
             
-            recordView.leftRecord.startAnimating()
+            leftItem.recordItem.startAnimating()
             delegate?.recordBar(self, device: .earphone,stateChange: .start)
         }
         else{
             stopRecord(.earphone)
             delegate?.recordBar(self, device: .earphone,stateChange: .stop)
         }
-
     }
     @objc func rightRecordBtnAction(){
-        if  recordView.leftRecord.activeView.animating || recordView.leftRecord.loadView.animating {
+        if self.isBusy{
             return
         }
         
-        recordView.rightRecord.isSelected = !recordView.rightRecord.isSelected
+        rightItem.recordItem.isSelected = !rightItem.recordItem.isSelected
         
-        if  recordView.rightRecord.isSelected {
-            recordView.leftRecord.alpha = 0.3
-            recordView.rightRecord.alpha = 1
-            languageView.leftItem.alpha = 0.3
-            languageView.rightItem.alpha = 0.3
+        if  rightItem.recordItem.isSelected {
+            leftItem.recordItem.alpha = 0.3
+            leftItem.languageItem.alpha = 0.3
+            rightItem.recordItem.alpha = 1
+            rightItem.languageItem.alpha = 0.3
             
-            recordView.rightRecord.startAnimating()
+            rightItem.recordItem.startAnimating()
             delegate?.recordBar(self, device: .phone,stateChange: .start)
         }
         else{
@@ -151,107 +198,47 @@ class DialogRecordBar: BaseView {
     }
     
     @objc func leftLanguageAction(){
-        if recordView.isBusy {
+        if self.isBusy {
             return
         }
-        let v = LanguagePickerView(languages: CCAiLanguage.all,isLeft: true,left: languageView.leftItem.language,right: languageView.rightItem.language)
-        v.selectedIndex = v.list.firstIndex(where: {$0.title == languageView.leftItem.language.title}) ?? 0
+        let v = LanguagePickerView(languages: CCAiLanguage.all,isLeft: true,left: leftItem.languageItem.language,right: rightItem.languageItem.language)
+        v.selectedIndex = v.list.firstIndex(where: {$0.title == leftItem.languageItem.language.title}) ?? 0
         v.show()
         v.didSelected = {[weak self] (index,value) in
             guard let self = self else { return  }
             if index == 0 {
-                languageView.leftItem.language = value
+                leftItem.languageItem.language = value
                 AiLanguageCache.save(type: .dialog_left, lan: value)
             }
             else{
-                languageView.rightItem.language = value
+                rightItem.languageItem.language = value
                 AiLanguageCache.save(type: .dialog_right, lan: value)
             }
         }
     }
     @objc func rightLanguageAction(){
-        if recordView.isBusy{
+        if self.isBusy{
             return
         }
-        let v = LanguagePickerView(languages: CCAiLanguage.all,isLeft: false,left: languageView.leftItem.language,right: languageView.rightItem.language)
-        v.selectedIndex = v.list.firstIndex(where: {$0.title == languageView.rightItem.language.title}) ?? 0
+        let v = LanguagePickerView(languages: CCAiLanguage.all,isLeft: false,left: leftItem.languageItem.language,right: rightItem.languageItem.language)
+        v.selectedIndex = v.list.firstIndex(where: {$0.title == rightItem.languageItem.language.title}) ?? 0
         v.show()
         v.didSelected = {[weak self] (index,value) in
             guard let self = self else { return  }
             if index == 0 {
-                languageView.leftItem.language = value
+                leftItem.languageItem.language = value
                 AiLanguageCache.save(type: .dialog_left, lan: value)
             }
             else{
-                languageView.rightItem.language = value
+                rightItem.languageItem.language = value
                 AiLanguageCache.save(type: .dialog_right, lan: value)
             }
         }
     }
-    class DialogRecordView:BaseView{
-        let leftRecord = DialogRecordingButton()
-        let rightRecord = DialogRecordingButton()
-        let switchBtn = UIButton()
-        var isBusy:Bool{
-            return leftRecord.activeView.animating || leftRecord.loadView.animating || rightRecord.activeView.animating || rightRecord.loadView.animating
-        }
-        
-        override func setupViews() {
-            addSubviews([leftRecord,rightRecord,switchBtn])
-            switchBtn.do { v in
-                v.setImage(UIImage(named: "split_screen_1"), for: .normal)
-                v.setImage(UIImage(named: "split_screen_2"), for: .selected)
-//                v.backgroundColor = .red
-                
-            }
-            leftRecord.do { v in
-                v.setImage(UIImage(named: "dialog_device_ear"), for: .normal)
-                v.setImage(UIImage(named: "dialog_device_ear"), for: .selected)
-            }
-            rightRecord.do { v in
-                v.setImage(UIImage(named: "dialog_device_phone"), for: .normal)
-                v.setImage(UIImage(named: "dialog_device_phone"), for: .selected)
-                v.activeView.tintColor = UIColor.color(.theme)
-                v.activeView.yc.setBorder(width: 2, color: .color(.theme), radius: 17)
-                v.loadView.tintColor = UIColor.color(.theme)
-            }
-        }
-        override func setupLayout() {
-            switchBtn.snp.remakeConstraints { make in
-                make.size.equalTo(34)
-                make.centerX.equalToSuperview()
-                make.top.equalToSuperview()
-            }
-            leftRecord.snp.remakeConstraints { make in
-                make.width.equalTo(66)
-                make.height.equalTo(34)
-                make.top.equalToSuperview().inset(0)
-                make.right.equalToSuperview().offset(-(kScreenWid/2 + 60))
-            }
-            rightRecord.snp.remakeConstraints { make in
-                make.width.equalTo(66)
-                make.height.equalTo(34)
-                make.top.equalToSuperview().inset(0)
-                make.left.equalToSuperview().offset(kScreenWid/2 + 60)
-            }
-        }
-        func splitLayout(){
-            switchBtn.snp.remakeConstraints { make in
-                make.size.equalTo(34)
-                make.right.equalToSuperview().inset(36)
-                make.top.equalToSuperview()
-            }
-            leftRecord.snp.remakeConstraints { make in
-                make.width.equalTo(66)
-                make.height.equalTo(34)
-                make.top.equalToSuperview().inset(0)
-                make.right.equalToSuperview().offset(-(kScreenWid/2 - 33))
-            }
-        }
-    }
-    class DialogLanguageView: UIView {
-        let leftItem = RecordLanguageItem()
-        let rightItem = RecordLanguageItem()
+
+    class DialogItem: UIView {
+        let languageItem = RecordLanguageItem()
+        let recordItem = DialogRecordingButton()
 
         override init(frame: CGRect) {
             super.init(frame: frame)
@@ -265,33 +252,22 @@ class DialogRecordBar: BaseView {
         
         func setupViews() {
 //            backgroundColor = .yellow
-            addSubviews([leftItem,rightItem])
-
-            leftItem.do { (v) in
-                v.language = CCAiLanguage.chinse
-                v.yc.addTap(target: self, action: #selector(leftLanguageAction))
-                v.language = .chinse
-                v.valueLabel.text = CCConfig.deviceType
-            }
-            rightItem.do { (v) in
-                v.language = CCAiLanguage.english
-                v.yc.addTap(target: self, action: #selector(rightLanguageAction))
-                v.language = .english
-                v.valueLabel.text = "手机".l10n
-            }
+            addSubviews([languageItem,recordItem])
         }
         
         func setupLayout() {
-            leftItem.snp.makeConstraints { make in
-                make.height.equalTo(60)
-                make.top.equalToSuperview()
-                make.right.equalToSuperview().offset(-(kScreenWid/2 + 60))
+            recordItem.snp.remakeConstraints { make in
+                make.width.equalToSuperview()
+                make.height.equalTo(38)
+                make.top.equalToSuperview().inset(0)
+                make.centerX.equalToSuperview()
             }
-            rightItem.snp.makeConstraints { make in
-                make.height.equalTo(leftItem)
-                make.centerY.equalTo(leftItem)
-                make.left.equalToSuperview().offset(kScreenWid/2 + 60)
+            languageItem.snp.remakeConstraints { make in
+                make.height.equalTo(60)
+                make.bottom.equalToSuperview()
+                make.centerX.equalToSuperview()
             }
+
         }
     }
     class RecordLanguageItem: BaseView {
@@ -335,7 +311,7 @@ class DialogRecordBar: BaseView {
             valueLabel.snp.makeConstraints { make in
                 make.right.equalTo(titleLabel)
                 make.top.equalTo(titleLabel.snp.bottom).offset(5)
-                make.bottom.equalToSuperview().inset(10)
+                make.bottom.equalToSuperview().inset(12)
             }
         }
     }