QLThumbnailGenerator 加载错误的图像

问题描述

我有一个显示图像缩略图的 NSCollectionView,我刚刚切换到使用 QLThumbnailGenerator 来获取它们。 有超过 6,000 张可能的图像可供查看,如果我滚动得太快,我开始从生成器返回错误的缩略图。 这是一个错误,还是我可以做些什么来解决这个问题? 下面是写在 NSCollectionViewItem 派生类里面的代码……

  var request: QLThumbnailGenerator.Request?
  
  func loadImage()
  {
    if imageView?.image != NSImage(imageLiteralResourceName: "Placeholder")
    {
      return
    }
    
    request = QLThumbnailGenerator.Request(fileAt: url!,size: imageSize,scale: 1.0,representationTypes: [.lowQualityThumbnail])
    
    QLThumbnailGenerator.shared.generateBestRepresentation(for: request!)
    {
      (thumbnail: QLThumbnailRepresentation?,error: Error?) -> Void in
      
      if let request = self.request
      {
        QLThumbnailGenerator.shared.cancel(request)
      }
      
      DispatchQueue.main.async
      {
        [unowned self] in
        
        if self.imageView?.image != NSImage(imageLiteralResourceName: "Placeholder")
        {
          return
        }
        
        let transition = CATransition()
        
        transition.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
        
        transition.duration = 0.3
        
        imageView?.layer?.add(transition,forKey: nil)
        
        imageView?.image = thumbnail?.nsImage
        
        …

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)