2016-10-28 8 views
0

Я использую Fusuma для своей галереи изображений и видео. У меня проблема с прокруткой галереи View (FSAlbumView.swift). в то время как я прокручиваю его, меняются большие пальцы видео, или вместо видео большого пальца большой палец изображения, у него нет никаких проблем с большими пальцами изображений, проблема связана только с большими пальцами.Fusuma Album Просмотр видео thumbs swaping

Вот мой код.

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 

    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("FSAlbumViewCell", forIndexPath: indexPath) as! FSAlbumViewCell 

    let currentTag = cell.tag + 1 
    cell.tag = currentTag 

    let asset = self.images[indexPath.item] as! PHAsset 
    if(asset.mediaType == .Image){ 
     self.imageManager?.requestImageForAsset(asset, 
               targetSize: cellSize, 
               contentMode: .AspectFill, 
               options: nil) { 
                result, info in 

                if cell.tag == currentTag { 
                 cell.image = result 
                } 

     } 
    }else if(asset.mediaType == .Video){ 
     self.imageManager?.requestAVAssetForVideo(asset, options: nil, resultHandler: {(asset: AVAsset?, audioMix: AVAudioMix?, info: [NSObject : AnyObject]?) in 
       //dispatch_async(dispatch_get_main_queue(), { 

        let asset = asset as? AVURLAsset 
      if asset?.URL.absoluteString != nil{ 
      self.videoURLArray.append([indexPath.row:(asset?.URL.absoluteString)!]) 
      } 
        if cell.tag == currentTag { 
         cell.video = asset?.URL 
         // self.videoURLArray[indexPath.row] = (asset?.URL.absoluteString)! 
         print(asset?.URL) 

        } 
        //..var data = NSData(contentsOfURL: asset!.URL) 

       //}) 
      }) 
    } 
    return cell 
} 

ответ

1

У нас также была та же проблема. То, что мы сделали, дает ниже. Не знаю, правильно ли это.

Прокомментировать приведенные ниже утверждения.

let currentTag = cell.tag + 1 
cell.tag = currentTag 

добавить заменить если-иначе блок с в следующем фрагменте кода

self.imageManager?.requestImageForAsset(asset, targetSize: cellSize, contentMode: .AspectFill, options: nil){ 
                result, info in 


                if(asset.mediaType == .Video){ 
                 self.imageManager?.requestAVAssetForVideo(asset, options: nil, resultHandler: {(asset: AVAsset?, audioMix: AVAudioMix?, info: [NSObject : AnyObject]?) in 

                  let asset = asset as? AVURLAsset 
                  if asset?.URL.absoluteString != nil{ 
                   self.videoURLArray.append([indexPath.row:(asset?.URL.absoluteString)!]) 
                  } 
                 }) 
                } 
                cell.image = result 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^