2017-10-22 7 views
1

私は両方の画像/ビデオを表示するためにcollectionViewを使用しています。AVPlayer&AVPlayerLayerをスクロール可能にする方法(AVFoundation)

Firebaseからコンテンツを取得しています。

画像でスクロールできます。 Firebaseが画像/コンテンツの一括検索を許可しないので、scrollviewを追加して手動で20個のimageViewを追加しました。値が存在するかどうかを確認し、存在する場合は、特定のインデックス(画像1〜20)にコンテンツを表示します。

私は、コードのこの部分では一定数を定義するときに気づくように思えました:

func numberOfSections(in collectionView: UICollectionView) -> Int { 
     return 1 

    } 

私はビデオをスクロールすることができます。しかし、私は複数の画像を取得することができないので、私はより不便な方法や20個の画像ビューを追加することに頼った。動画を表示するには、私は次のことをやっている:

if let firstVidURLString = post?.firstVideoURL, let firstVideoURL = URL(string: firstVidURLString) { 
      self.volumeView.isHidden = false 
      videoPlayer = AVPlayer(url: firstVideoURL) 
      videoPlayerLayer = AVPlayerLayer(player: videoPlayer) 
      videoPlayerLayer?.frame = self.firstImageView.frame 
      videoPlayerLayer?.videoGravity = AVLayerVideoGravity.resizeAspectFill 
      layoutIfNeeded() 
      videoPlayerLayer?.zPosition = 0 
      self.contentView.layer.addSublayer(videoPlayerLayer!) 
      self.volumeView.layer.zPosition = 1 
      videoPlayer?.play() 
      videoPlayer?.isMuted = isMuted 
     } 

私はそれが置かれている方法で満足している、私は私が持っている第一の画像表示に相関関係にあるフレーム/境界を定義しています。確かに、それは私がスクロールするのに役立つはずですか? 1つの画像ビューと同じサイズを使用するためです。悲しいかな、ビデオプレーヤー/ビデオレイヤーは静的で、スクロールビューには準拠しません。どのように私はこれに取り組むことができるかに関する任意のアイデアですか?

ありがとうございます。

答えて

0

それを実演しました。これは将来の誰かのためのものです。あなたは1を持っている場合は、単純にこの行を追加することを行うたら

等CollectionViewCell

、対応する.swiftファイル、すなわちのViewControllerに、あなたのscrollViewを接続します。

自己。[あなたのscrollview] .layer.addSublayer(ビデオ層の名前!)

そして、あなたは大丈夫!

関連する問題