Forráskód Böngészése

1.图片滑倒最后显示录音按钮

wenweiwei 3 éve
szülő
commit
55b86502a0

+ 19 - 4
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenController.swift

@@ -651,6 +651,7 @@ public class BFRecordScreenController: BFBaseViewController {
                     self?.isEndPlay = true
                     // 录制结束显示播放按钮
                     sself.playBtn.isSelected = sself.itemModels[sself.currItemModelIndex].voiceStickers.count <= 0
+                    sself.playBtn.isHidden = sself.playBtn.isSelected
                 }
                 DispatchQueue.main.async { [weak self] in
                     // 录音完,重绘撤销按钮,更新录音按钮,
@@ -1062,6 +1063,7 @@ public class BFRecordScreenController: BFBaseViewController {
                 // 判断是否无录音了
                 if itemModels[currItemModelIndex].materialDuraion == .zero {
                     playBtn.isSelected = true
+                    playBtn.isHidden = playBtn.isSelected
                 }
             }
             searchStopAtRecordRange()
@@ -1124,7 +1126,7 @@ public class BFRecordScreenController: BFBaseViewController {
         }
         // 录制中不显示播放按钮
         playBtn.isSelected = true
-
+        playBtn.isHidden = playBtn.isSelected
         let cell = collectionView.cellForItem(at: IndexPath(item: currItemModelIndex, section: 0)) as? BFImageCoverViewCell
         if cell?.contentView.viewWithTag(100_100)?.superview == nil {
             cell?.contentView.addSubview(subtitleLabel)
@@ -1336,6 +1338,7 @@ public class BFRecordScreenController: BFBaseViewController {
             // 如果是图片需重置播放按钮
             if itemModel.mediaType == .IMAGE {
                 playBtn.isSelected = itemModels[currItemModelIndex].voiceStickers.count <= 0
+                playBtn.isHidden = playBtn.isSelected
             }
         }
     }
@@ -1392,9 +1395,16 @@ public class BFRecordScreenController: BFBaseViewController {
         changeWithDrawBtnLayout(0)
         isEndPlay = (progress == 1)
         recorderManager?.voiceModel = nil
-        // 视频拖动到最后隐藏录制按钮
-        if itemModels[currItemModelIndex].mediaType == .VIDEO, CMTimeCompare(currentAssetProgress, itemModels[currItemModelIndex].materialDuraion) >= 0 {
-            recordBtn.isHidden = true
+        
+        if CMTimeCompare(currentAssetProgress, itemModels[currItemModelIndex].materialDuraion) >= 0  {
+            // 视频拖动到最后隐藏录制按钮
+            if itemModels[currItemModelIndex].mediaType == .VIDEO  {
+                recordBtn.isHidden = true
+            } else {
+                recordBtn.isHidden = false
+                deleteRecordBtn.isHidden = true
+                recordBtn.alpha = 1
+            }
         }
     }
 
@@ -1752,6 +1762,7 @@ public class BFRecordScreenController: BFBaseViewController {
 
         // 暂停状态
         playBtn.isSelected = (itemModels[currItemModelIndex].mediaType == .IMAGE && itemModels[currItemModelIndex].voiceStickers.count <= 0)
+        playBtn.isHidden = playBtn.isSelected
     }
 
     func fetchVideo() {
@@ -1784,6 +1795,7 @@ public class BFRecordScreenController: BFBaseViewController {
         }
         // 暂停状态--如果是图片素材同时没有录音文件时不显示播放按钮
         playBtn.isSelected = (itemModels.first?.mediaType == .IMAGE && (itemModels.first?.voiceStickers.count ?? 0) <= 0)
+        playBtn.isHidden = playBtn.isSelected
     }
 
     func setCoverImage(img: UIImage) {
@@ -1863,6 +1875,7 @@ public class BFRecordScreenController: BFBaseViewController {
                 cShowHUB(superView: nil, msg: "此视频已录制到头了哦")
             }
             sself.playBtn.isSelected = false
+            sself.playBtn.isHidden = sself.playBtn.isSelected
         }
     }
 
@@ -2128,6 +2141,7 @@ extension BFRecordScreenController: UICollectionViewDelegate, UICollectionViewDa
             let recordItem = itemModels[currItemModelIndex]
             // 暂停状态--如果是图片素材同时没有录音文件时不显示播放按钮
             playBtn.isSelected = (recordItem.mediaType == .IMAGE && recordItem.voiceStickers.count <= 0)
+            playBtn.isHidden = playBtn.isSelected
             // 重绘录音区域
             progressThumV.recordItem = recordItem
             DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { [weak self] in
@@ -2194,6 +2208,7 @@ public extension BFRecordScreenController {
         if itemModels[currItemModelIndex].mediaType == .IMAGE {
             if itemModels[currItemModelIndex].materialDuraion.seconds <= 0 {
                 playBtn.isSelected = true
+                playBtn.isHidden = playBtn.isSelected
                 return
             }
             isNormalPlaying = true

+ 2 - 2
BFRecordScreenKit/Classes/RecordScreen/View/BFVideoThumbProgressView.swift

@@ -265,8 +265,8 @@ extension BFVideoThumbProgressView: UIScrollViewDelegate {
             }
         } else if recordItem?.mediaType == .IMAGE {
             if isDrag {
-                if scrollView.contentOffset.x > ((CGFloat(recordItem?.materialDuraion.seconds ?? 0) * thumbImageWidth / 2.0) + 0.4) {
-                    scrollView.contentOffset = CGPoint(x: (CGFloat(recordItem?.materialDuraion.seconds ?? 0) * thumbImageWidth / 2.0) + 0.4, y: 0)
+                if scrollView.contentOffset.x > ((CGFloat(recordItem?.materialDuraion.seconds ?? 0) * thumbImageWidth / 2.0) + 0.34) {
+                    scrollView.contentOffset = CGPoint(x: (CGFloat(recordItem?.materialDuraion.seconds ?? 0) * thumbImageWidth / 2.0) + 0.34, y: 0)
                 }
                 dragScrollProgressHandle?(false, totalW > 0 ? Float(scrollView.contentOffset.x / totalW) : 0)
             }