私は、stackoverflowと私が検索した多くのWebサイトで多くのソリューションを試しました。コレクション表ビュー内のビューセルスロースクロールパフォーマンス
私の問題:テーブルビューのセル内にコレクションビューがあります。私のデータはテーブルビュー(viewdidload)で1回読み込まれなければなりません。
コレクションビューをテーブルセル内に渡すと、コレクションビューを再度読み込む必要があるため、表示されません。
だから私の操作を行います。データ - >テーブルビューのcellforrow内 - >コレクションビューに渡す - > cell.collectionView.reloadData()
この原因スクロールのパフォーマンスに関する問題: collectionView.reloadData()私はスクロールするときので、テーブルビューのresuableセルアーキテクチャの(何度も何度もこの権利を超える呼び出し、
ここでのtableViewのcellforrowで私のコード:。
let cell = tableView.dequeueReusableCell(withIdentifier: SubCategoryCellID) as! SubCategoryCell
if isFetched {
cell.shimmeringView.isShimmering = false
cell.shimmeringImageView.isHidden = true
cell.shimmeringView.isHidden = true
cell.listLocation = nestedSubLocation[indexPath.item]
cell.collectionView.reloadData()
}else {
return cell
}
Solutions私が試したソリューション: +静的なセルを作成し、cellForRowに表示するセルを取得する(これは完全にスクロールのパフォーマンスを修正しますが、メモリ管理には不向きで、親がコレクションビューの場合は機能しません)。 +スクロール停止時にデータを再読み込みする:最初に読み込むときにデータを読み込む必要があり、読み込みをやり直す必要がある場合は間違ったデータが必要です。
これを修正するには、スクロールのパフォーマンスを改善するための賢明な方法がありますか?
グレート解決した後に、このコードを入れて、あなたはこれが実際にどのように動作するかを説明できますか? – inokey
@inokeyこのメソッドは、rectで定義された領域がスクロールビュー内でちょうど見えるようにコンテンツビューをスクロールします。領域がすでに表示されている場合、このメソッドは何も行いません。 [これを参照してください](https://developer.apple.com/documentation/uikit/uiscrollview/1619439-scrollrecttovisible?language=objc) – Bala
私はあなたのソリューションを試しましたが、シミュレータの遅れのみを取り除いていました。テスト装置はこれでも十分速く処理できませんでした。しかし、私の問題はコレクションビューの中でセル自体を構築するときに深いものでした。そのため、あなたのソリューションは軽量な状況の大半で機能します。返信いただきありがとうございます! – inokey