Explorar el Código

修复图片素材卡顿问题

jsonwang hace 3 años
padre
commit
4d8be3694a

+ 5 - 2
BFRecordScreenKit/Classes/BFRecordItemModel.swift

@@ -78,8 +78,11 @@ public class BFRecordItemModel: NSObject {
             if image != nil {
                 self?.coverImg = image
                 if self?.mediaType == .Image {
-                    if let thumImage = image?.nx_scaleToSize(size: CGSize(width: 112, height: 200)) {
-                        self?.thumbImgs.append(thumImage)
+                    DispatchQueue.global().async {[weak self] in
+                        guard let wself = self else { return }
+                        if let thumImage = image?.nx_scaleToSize(size: CGSize(width: 112, height: 200)) {
+                            wself.thumbImgs.append(thumImage)
+                        }
                     }
                 }
                 self?.fetchCoverImgCallBack?(image!)

+ 15 - 4
BFRecordScreenKit/Classes/RecordScreen/View/Cell/BFImageCoverViewCell.swift

@@ -18,6 +18,12 @@ open class BFImageCoverViewCell: UICollectionViewCell {
         return playView
     }()
     
+    lazy var playImageView: UIImageView = {
+        let playImageView = UIImageView(frame: bounds)
+        playImageView.contentMode = .scaleAspectFit
+        return playImageView
+    }()
+    
     lazy var playBtn:UIButton = {
         let btn = UIButton()
         btn.addTarget(self, action: #selector(btnClick(sender:)), for: .touchUpInside)
@@ -49,6 +55,7 @@ open class BFImageCoverViewCell: UICollectionViewCell {
         super.init(frame: frame)
         contentView.addSubview(playView)
         contentView.addSubview(playBtn)
+        contentView.addSubview(playImageView)
     }
 
     public required init?(coder _: NSCoder) {
@@ -73,14 +80,18 @@ open class BFImageCoverViewCell: UICollectionViewCell {
 //            picture.removeTarget(filter)
 //            return
 //        }
-        picture = GPUImagePicture(image: coverImg)
-        picture.addTarget(filter)
-        filter.addTarget(playView)
-        picture.processImage()
+//        picture = GPUImagePicture(image: coverImg)
+//        picture.addTarget(filter)
+//        filter.addTarget(playView)
+//        picture.processImage()
+        
+        playImageView.image = coverImg
+        
     }
 
     public func addLayout() {
         playView.frame = contentView.bounds
+        playImageView.frame = contentView.bounds
         playBtn.snp.makeConstraints { make in
             make.left.right.equalToSuperview()
             make.top.equalTo(cDevice_iPhoneNavBarAndStatusBarHei)