Browse Source

UI 修改

harry 3 years ago
parent
commit
56ce901af4

+ 6 - 0
Introduce/Assets.xcassets/Preview/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 1 - 3
Introduce/Assets.xcassets/home/add.imageset/Contents.json → Introduce/Assets.xcassets/Preview/dl_add.imageset/Contents.json

@@ -1,17 +1,15 @@
 {
   "images" : [
     {
-      "filename" : "add.png",
       "idiom" : "universal",
       "scale" : "1x"
     },
     {
-      "filename" : "add@2x.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
-      "filename" : "add@3x.png",
+      "filename" : "dl_add@3x.png",
       "idiom" : "universal",
       "scale" : "3x"
     }

BIN
Introduce/Assets.xcassets/Preview/dl_add.imageset/dl_add@3x.png


BIN
Introduce/Assets.xcassets/home/add.imageset/add.png


BIN
Introduce/Assets.xcassets/home/add.imageset/add@2x.png


BIN
Introduce/Assets.xcassets/home/add.imageset/add@3x.png


+ 21 - 0
Introduce/Assets.xcassets/home/import.imageset/Contents.json

@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "import@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Introduce/Assets.xcassets/home/import.imageset/import@3x.png


+ 21 - 0
Introduce/Assets.xcassets/home/shot.imageset/Contents.json

@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "shot@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Introduce/Assets.xcassets/home/shot.imageset/shot@3x.png


+ 22 - 0
Introduce/Record/INIntroduceController.swift

@@ -25,6 +25,14 @@ class INIntroduceController: BFBaseViewController {
     }
 
     let recordScreenVC = BFRecordScreenController()
+    
+    lazy var addMaterialBtn : UIButton  = {
+        let btn = UIButton()
+        btn.setImage(UIImage(named: "dl_add"), for: .normal)
+        btn.addTarget(self, action: #selector(addmaterial), for: .touchUpInside)
+        return btn
+    }()
+    // MARK: - VC生命周期
 
     override func viewWillAppear(_ animated: Bool) {
         super.viewWillAppear(animated)
@@ -54,6 +62,10 @@ class INIntroduceController: BFBaseViewController {
         navHeadImageView?.image = UIImage(named: "top_shadow")
         navHeadImageView?.contentMode = .scaleToFill
         leftButton(image: nil, imageName: nil, tintColor: .white)
+        
+        
+        addMaterialBtn.frame = CGRect(x: backButton?.rightX ?? 0, y: backButton?.y ?? 0, width: 30, height: backButton?.height ?? 0)
+        navHeadImageView?.addSubview(addMaterialBtn)
 
         exportBtn.backgroundColor = UIColor.hexColor(hexadecimal: "#389AFF")
         exportBtn.setTitle("导出", for: .normal)
@@ -103,6 +115,16 @@ class INIntroduceController: BFBaseViewController {
             BFEventTrackAdaptor.baseReportUpload(businessType: .bt_pageView, objectType: .ot_addMaterialSuccess, pageSource: .sp_speekPage,extParams: ["materialTypeList":materialTypeList],commonParams: commonParams())
         }
     }
+    
+    // MARK: - Button action
+    @objc func addmaterial(){
+        let vc = INPhotoVideosController()
+        
+        
+        navigationController?.present(vc, animated: true, completion: {
+            
+        })
+    }
 
     override func backBtnClick() {
   

+ 13 - 20
Introduce/Record/INPhotoVideosController.swift

@@ -21,6 +21,8 @@ class INPhotoVideosController: BFBaseViewController {
     let choseBtnW: CGFloat = cDefaultMargin * 5
     // 间隔
     let margin: CGFloat = 12
+    // 素材选择数量
+    var maxMaterialNum = 20
 
     lazy var albumController: BFPhotoAlbumController = {
         let albumController = BFPhotoAlbumController()
@@ -103,7 +105,7 @@ class INPhotoVideosController: BFBaseViewController {
 
     lazy var photoMaterialVc: BFPhotosMaterialController = {
         let vc = BFPhotosMaterialController()
-        vc.maxChoseNum = 20
+        vc.maxChoseNum = maxMaterialNum
         vc.msgType = .all
         vc.showGIF = false
         vc.view.backgroundColor = .black
@@ -112,23 +114,29 @@ class INPhotoVideosController: BFBaseViewController {
             self?.chosedAsset = selectedPhotoData
         }
         vc.detailMaterialHandle = { [weak self] _, currentMaterialData in
+            guard let wself = self else { return }
+            
             let detailVc: BFMaterialDetailController = BFMaterialDetailController()
             detailVc.isShowNextBtn = true
-            detailVc.maxChoseNum = 20
+            detailVc.maxChoseNum = wself.maxMaterialNum
             detailVc.isStuckPoint = true
             detailVc.materialDetailClickHandle = { [weak self] isMaterialSelected, materialData in
+                guard let wself = self else { return }
+                
                 if isMaterialSelected != materialData?.isSelected {
-                    self?.photoMaterialVc.updateMaterials(isSelected:!(isMaterialSelected ?? false), materialData: materialData)
+                    wself.photoMaterialVc.updateMaterials(isSelected:!isMaterialSelected, materialData: materialData)
                 }
             }
             detailVc.nextClickHandle = {[weak self] sender in
-                self?.nextBtnClick(sender: sender)
+                guard let wself = self else { return }
+                
+                wself.nextBtnClick(sender: sender)
             }
             if !(currentMaterialData?.isSelected ?? false) {
                 currentMaterialData?.selectedIndex = (self?.chosedAsset?.count ?? 0) + 1
             }
             detailVc.materialData = currentMaterialData
-            self?.navigationController?.pushViewController(detailVc, animated: true)
+            wself.navigationController?.pushViewController(detailVc, animated: true)
         }
         vc.emptyRefreshHandle = {[weak self] msgType in
             if msgType == .image {
@@ -147,9 +155,6 @@ class INPhotoVideosController: BFBaseViewController {
         showNavigation()
         photoMaterialVc.hiddenNavigation()
 
-        // 清理cache文件
-        clearCacheFile(at: exportVideosDirectory)
-        clearCacheFile(at: exportAudiosDirectory)
     }
 
     override func viewDidLoad() {
@@ -256,18 +261,6 @@ class INPhotoVideosController: BFBaseViewController {
         }
     }
 
-    func clearCacheFile(at folderPath: String) {
-        if let files = try? FileManager.default.contentsOfDirectory(atPath: folderPath) {
-            for file in files {
-                do {
-                    try FileManager.default.removeItem(at: URL(fileURLWithPath: folderPath).appendingPathComponent(file))
-                } catch {
-                    BFLog(1, message: "\(error), \(file)")
-                }
-            }
-        }
-    }
-
     // MARK: -
 
     override open var preferredStatusBarStyle: UIStatusBarStyle {

+ 44 - 8
Introduce/Record/INRecorderController.swift

@@ -32,10 +32,10 @@ class INRecorderController: BFBaseViewController {
     
     lazy var camaraBtn: UIButton = {
         let btn = UIButton(type: .custom)
-        btn.setImage(UIImage(named: "add"), for: .normal)
+        btn.setImage(UIImage(named: "shot"), for: .normal)
         btn.setTitle("拍摄录制", for: .normal)
         btn.setTitleColor(UIColor.init(white: 1, alpha: 0.5), for: .normal)
-        btn.titleLabel?.font = UIFont.systemFont(ofSize: 14)
+        btn.titleLabel?.font = UIFont.systemFont(ofSize: 17)
         btn.addTarget(self, action: #selector(cameraBtnAction), for: .touchUpInside)
 
         return btn
@@ -43,10 +43,10 @@ class INRecorderController: BFBaseViewController {
     
     lazy var photoBtn: UIButton = {
         let btn = UIButton(type: .custom)
-        btn.setImage(UIImage(named: "add"), for: .normal)
+        btn.setImage(UIImage(named: "import"), for: .normal)
         btn.setTitle("从相册选择", for: .normal)
         btn.setTitleColor(UIColor.init(white: 1, alpha: 0.5), for: .normal)
-        btn.titleLabel?.font = UIFont.systemFont(ofSize: 14)
+        btn.titleLabel?.font = UIFont.systemFont(ofSize: 17)
         btn.addTarget(self, action: #selector(addVideo), for: .touchUpInside)
         
         return btn
@@ -190,6 +190,16 @@ class INRecorderController: BFBaseViewController {
         return bottomView
     }()
     
+    // MARK: - 生命周期
+    override func viewDidAppear(_ animated: Bool) {
+        super.viewDidAppear(animated)
+        
+        // 清理cache文件
+        clearCacheFile(at: exportVideosDirectory)
+        clearCacheFile(at: exportAudiosDirectory)
+        clearCacheFile(at: recordVideosDirectory)
+    }
+    
     override func viewDidLoad() {
         super.viewDidLoad()
         view.backgroundColor = .black
@@ -215,12 +225,12 @@ class INRecorderController: BFBaseViewController {
         camaraBtn.snp.makeConstraints { make in
             make.width.equalTo(130)
             make.height.equalTo(180)
-            make.centerX.equalToSuperview().offset(-71.5)
+            make.centerX.equalToSuperview().offset(-80)
             make.centerY.equalToSuperview()
         }
         
         photoBtn.snp.makeConstraints { make in
-            make.left.equalTo(camaraBtn.snp.right).offset(13)
+            make.left.equalTo(camaraBtn.snp.right).offset(30)
             make.width.height.centerY.equalTo(camaraBtn)
         }
         
@@ -327,8 +337,19 @@ class INRecorderController: BFBaseViewController {
     }
     
     @objc func cameraBtnAction() {
-        let vc = INIntroduceController()
-        navigationController?.pushViewController(vc, animated: true)
+        if chechCameraPromission() {
+            let vc = INIntroduceController()
+            navigationController?.pushViewController(vc, animated: true)
+        }
+    }
+    
+    func chechCameraPromission() -> Bool{
+        if  AVCaptureDevice.authorizationStatus(for: AVMediaType.video) != AVAuthorizationStatus.denied {
+            return true
+        }else {
+            cShowHUB(superView: nil, msg: "权限已被禁用,请到设置里开启摄像头权限")
+            return false
+        }
     }
     
     @objc func protocolClick(sender:UIButton) {
@@ -344,6 +365,21 @@ class INRecorderController: BFBaseViewController {
             self.navigationController?.pushViewController(detail, animated: true)
         }
     }
+    
+    //
+    func clearCacheFile(at folderPath: String) {
+        if let files = try? FileManager.default.contentsOfDirectory(atPath: folderPath) {
+            for file in files {
+                do {
+                    try FileManager.default.removeItem(at: URL(fileURLWithPath: folderPath).appendingPathComponent(file))
+                } catch {
+                    BFLog(1, message: "\(error), \(file)")
+                }
+            }
+        }
+    }
+
+    
 }
 
 

+ 45 - 45
Introduce/Record/INVideoExportController.swift

@@ -219,11 +219,11 @@ class INVideoExportController: BFBaseViewController {
 
         export.progress = { [weak self] progress in
             DispatchQueue.main.async { [weak self] in
-                if let sself = self {
+                if let wself = self {
 //                    let width = export.data?.first?.width ?? 0
-                    sself.progressL.text = String(format: "%d%%", Int(progress * 100))
-                    sself.progressView.snp.updateConstraints { make in
-                        make.width.equalTo(sself.playerLayer.bounds.width * CGFloat(progress))
+                    wself.progressL.text = String(format: "%d%%", Int(progress * 100))
+                    wself.progressView.snp.updateConstraints { make in
+                        make.width.equalTo(wself.playerLayer.bounds.width * CGFloat(progress))
                     }
                 }
             }
@@ -231,42 +231,42 @@ class INVideoExportController: BFBaseViewController {
 
         export.exportCompletion = { [weak self] error, url in
             DispatchQueue.main.async { [weak self] in
-                guard let sself = self else {
+                guard let wself = self else {
                     return
                 }
                 UIApplication.shared.isIdleTimerDisabled = false
 
-                sself.resetViewStatus()
-                sself.coverIV.isHidden = true
-                sself.progressView.snp.updateConstraints { make in
+                wself.resetViewStatus()
+                wself.coverIV.isHidden = true
+                wself.progressView.snp.updateConstraints { make in
                     make.width.equalTo(0)
                 }
-                sself.progressL.text = "0%"
+                wself.progressL.text = "0%"
                 if let fileUrl = url {
-                    sself.sliderView?.isHidden = false
-                    sself.playDurL.isHidden = false
-                    sself.sliderView?.playStart()
-                    sself.completeBtn.isHidden = false
+                    wself.sliderView?.isHidden = false
+                    wself.playDurL.isHidden = false
+                    wself.sliderView?.playStart()
+                    wself.completeBtn.isHidden = false
 
                     let item = AVPlayerItem(url: fileUrl)
-                    sself.avplayer.replaceCurrentItem(with: item)
+                    wself.avplayer.replaceCurrentItem(with: item)
                     usleep(1000)
-                    sself.avplayer.play()
-                    sself.playerLayer.borderColor = ThemeStyleColor.cgColor
+                    wself.avplayer.play()
+                    wself.playerLayer.borderColor = ThemeStyleColor.cgColor
 
-                    if sself.saveAllBtn.isSelected {
-                        sself.saveAllUlr = fileUrl
-                        sself.hasExportAll = true
+                    if wself.saveAllBtn.isSelected {
+                        wself.saveAllUlr = fileUrl
+                        wself.hasExportAll = true
                     }
 
-                    if sself.saveOnlyBtn.isSelected {
-                        sself.saveOnlyUlr = fileUrl
-                        sself.hasExportOnly = true
+                    if wself.saveOnlyBtn.isSelected {
+                        wself.saveOnlyUlr = fileUrl
+                        wself.hasExportOnly = true
                     }
                     // 添加播放进度视图
                     self?.addVideoSliderView()
                 }else {
-                    if let l = sself.errorView.viewWithTag(33000) as? UILabel, let err = error as NSError?,let b = sself.errorView.viewWithTag(33001) as? UIButton {
+                    if let l = wself.errorView.viewWithTag(33000) as? UILabel, let err = error as NSError?,let b = wself.errorView.viewWithTag(33001) as? UIButton {
                         switch err.code {
                         case ExportError.FileNotExist.rawValue :
                             l.text = "原视频/图片文件被删除"
@@ -283,7 +283,7 @@ class INVideoExportController: BFBaseViewController {
                         }
                         l.sizeToFit()
                     }
-                    sself.errorView.isHidden = false
+                    wself.errorView.isHidden = false
                 }
             }
             // 合成成功上报
@@ -490,7 +490,7 @@ class INVideoExportController: BFBaseViewController {
         }
 
 //        DispatchQueue.main.asyncAfter(deadline: .now() + 0) { [weak self] in
-//            guard let sself = self else {
+//            guard let wself = self else {
 //                return
 //            }
 //
@@ -540,7 +540,7 @@ class INVideoExportController: BFBaseViewController {
     func resetViewStatus() {
 
         isExporting = false
-//                sself.bottomView.isHidden = false
+//                wself.bottomView.isHidden = false
         
         saveAllBtn.setImage(UIImage(named: "export_saveall_n"), for: .normal)
         saveOnlyBtn.setImage(UIImage(named: "export_saveonly_n"), for: .normal)
@@ -615,17 +615,17 @@ class INVideoExportController: BFBaseViewController {
             PHPhotoLibrary.shared().performChanges {
                 PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: url)
             } completionHandler: { [weak self] isFinished, _ in
-                guard let sself = self else {
+                guard let wself = self else {
                     return
                 }
                 if isFinished {
                     DispatchQueue.main.async {
                         cShowHUB(superView: nil, msg: "保存成功", style: 1)
                     }
-                    if sself.saveAllBtn.isSelected {
-                        sself.hasSaveAll = true
-                    } else if sself.saveOnlyBtn.isSelected {
-                        sself.hasSaveOnly = true
+                    if wself.saveAllBtn.isSelected {
+                        wself.hasSaveAll = true
+                    } else if wself.saveOnlyBtn.isSelected {
+                        wself.hasSaveOnly = true
                     }
                 }
             }
@@ -723,11 +723,11 @@ class INVideoExportController: BFBaseViewController {
                
             }
             let okAction = UIAlertAction(title: "确定离开", style: .default) {[weak self] action in
-                guard let sself = self else {
+                guard let wself = self else {
                     return
                 }
-                sself.export.cancelExport()
-                sself.navigationController?.popToRootViewController(animated: true)
+                wself.export.cancelExport()
+                wself.navigationController?.popToRootViewController(animated: true)
             }
             alertController.addAction(cancelAction)
             alertController.addAction(okAction)
@@ -743,26 +743,26 @@ class INVideoExportController: BFBaseViewController {
 //            alertV.cancelBtn.setTitle("确认保存", for: .normal)
 //            alertV.remindData = remindData
 //            alertV.remindBlock = { [weak self] item, _ in
-//                guard let sself = self else {
+//                guard let wself = self else {
 //                    return
 //                }
 //                if item.tag == 1 { // 确定返回到上一层
-//                    if sself.hasExportOnly {
+//                    if wself.hasExportOnly {
 //                        PHPhotoLibrary.shared().performChanges {
-//                            PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: sself.saveOnlyUlr)
+//                            PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: wself.saveOnlyUlr)
 //                        } completionHandler: { _, _ in
 //                        }
 //                    }
-//                    if sself.hasExportAll {
+//                    if wself.hasExportAll {
 //                        PHPhotoLibrary.shared().performChanges {
-//                            PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: sself.saveAllUlr)
+//                            PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: wself.saveAllUlr)
 //                        } completionHandler: { _, _ in
 //                        }
 //                    }
 //                }
 //
-//                sself.export.cancelExport()
-//                sself.navigationController?.popToRootViewController(animated: true)
+//                wself.export.cancelExport()
+//                wself.navigationController?.popToRootViewController(animated: true)
 //            }
 //            UIApplication.shared.keyWindow?.addSubview(alertV)
         } else {
@@ -790,10 +790,10 @@ class INVideoExportController: BFBaseViewController {
                        message: "", preferredStyle: .alert)
         let cancelAction = UIAlertAction(title: "取消", style: .default, handler: nil)
         let okAction = UIAlertAction(title: "确定", style: .default) {[weak self] action in
-            guard let sself = self else {
+            guard let wself = self else {
                 return
             }
-            sself.export.cancelExport()
+            wself.export.cancelExport()
             comfirm?()
         }
         alertController.addAction(cancelAction)
@@ -810,11 +810,11 @@ class INVideoExportController: BFBaseViewController {
 //        alertV.cancelBtn.setTitle("取消合成", for: .normal)
 //        alertV.remindData = remindData
 //        alertV.remindBlock = { [weak self] item, _ in
-//            guard let sself = self else {
+//            guard let wself = self else {
 //                return
 //            }
 //            if item.tag == 1 { // 确定返回到上一层
-//                sself.export.cancelExport()
+//                wself.export.cancelExport()
 //                comfirm?()
 //            }
 //        }