0

ダウンロードしたビデオを自動的に表示するにはどうすればよいですか?

テーブルビューには、一連の AVPlayer ビデオがあります。

各セル (cellForRowAtIndexPath メソッド) には、AVPlayer が再生するアセットを生成する次のコードがあります。

AVURLAsset *asset = [AVURLAsset URLAssetWithURL:[self getURL:someURLString] options:nil];

getURL

  • ビデオがローカルに保存されている場合は、ローカル URL を返します
  • ビデオがリモートに保存されている場合は、ビデオ データをローカル URL にダウンロードしてから、ローカル URL を返します。

私が抱えている問題は、ビデオがダウンロードされたときに、セルをスクロールしてから、もう一度上にスクロールして表示する必要があることです。(ビデオがすでにローカルに保存されている場合、これは起こりません)

setNeedsDisplayや などの方法を使用しreloadRowsAtIndexPathました。しかし、彼らは働いていません。

助けてくれてありがとう!:)


何らかの理由で UITableViewCell は cellForRowAtIndexPath 中に停止しますか? ローカル URL が返されたときに (cellForRowAtIndexPath が呼び出される前に) 古いバージョンのローカル URL に到達しようとするという意味で? (ただの勝手な推測?)


一時的な解決策:

これが機能していないように見えるため、cellForRowAtIndexPath よりもビデオをダウンロードするより良い方法 (各ビデオは約 200KB のみ) を提案できますか?

4

1 に答える 1

1

UITableViewCell オブジェクトへの参照を取得して、そのコンテンツなどを変更することもできます。

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.text = @"Hey, I've changed!";
于 2013-07-23T04:39:21.733 に答える