2016-11-02 2 views
0

collectionView (colectionCell에도 horizontalCollection이 포함되어 있음)에 이미지를로드 할 때 몇 가지 문제가 있습니다.SDWebImage를 통해 이미지를로드하면 프로젝트의 메모리가 걸립니다.

showActivityIndicator() 
imageView.sd_setOptimizedImageWithURL (url, placeholderImage: placeholder) { 
    self?.hideActivityIndicator() 
}) 

나는 또한이 작업을 수행 :

override func prepareForReuse() { 
     super.prepareForReuse() 
     hideActivityIndicator() 
     seshImageView.sd_cancelCurrentImageLoad() 
} 

는 그럼 난/다운 결국 충돌이 발생 위로 스크롤입니다. 인스트루먼트에서 할당 사용 메모리가 빠르게 증가하고 있음을 알았지 만 아직 해결할 수 없습니다. 내 화면을 확인하십시오. TotaBytes은 거의 6GB를 달성하고 충돌합니다. enter image description here 누군가 내가 잘못하고있는 것을 이해하도록 도와 줄 수 있습니까? 감사!

답변

1

// //이 반드시 귀하의 메모리 사용 문제를 해결할 것 UICollectionViewCell 당신이 그것을 펜촉을 사용하거나

import UIKit 
import SDWebImage 
class TDtopicCell: UICollectionViewCell { 


    @IBOutlet weak var image: UIImageView! 
    override func awakeFromNib() { 
     super.awakeFromNib() 
     // Initialization code 
     loaderAct!.transform = CGAffineTransformMakeScale(2, 2); 
     loaderAct!.startAnimating(); 
     addShadow(); 
    } 
    func downLoadImage(_url:String) -> Void { 

     image.sd_setImageWithURL(NSURL(string: _url),placeholderImage:nil, options:SDWebImageOptions.RetryFailed , completed: {[weak self] 
      (image, error, cacheType, url) in 
      // do your custom logic here 
      if let wSelf = self { 
       dispatch_async(dispatch_get_main_queue()){ 
        wSelf.clear() 
       } 

      } 
      }) 
    } 
    func clear() -> Void { 
     if((loaderAct) != nil) 
     { 
      loaderAct!.removeFromSuperview(); 
     } 
    } 
} 

//이 방법은 내 사용자 지정 UICollectionView 에 속하는 코드를 사용하여 정의 할 수 있습니다 나타냅니다 내 정의 셀 게으른 로딩을 사용하여 이미지 불러 오기

override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as!TDtopicCell 
    eachTDtopic=collectionData![indexPath.item]; 
    //eachTDtopic?.topicImage is image path ------------------------------------------ 
    cell.downLoadImage((eachTDtopic?.topicImage)!); 
    // Configure the cell 

    return cell 
} 
+0

설명 주셔서 감사합니다. 조금만 사용해 주시면 문제가 이미지 로딩과 관련이없는 것 같습니다. 모든 코드에 주석을 달고 빈 셀만 스크롤하면 메모리가 계속 커집니다. 어쩌면 그걸로 직면했을까요? 평소입니까? 감사! – Svitlana

+0

ok UICollectionView에 reuseIdentifiers를 사용하고 있습니까? – dragoneye

+0

예, reuseIdentifiers를 사용하고 있지만 실수로 도움을 얻은 것 같고 게으른로드가 도움이되었습니다! – Svitlana