1

UIScrollView に 3 番目のコレクション ビューを追加しました。これにより、顕著なスクロール ラグが発生しているようです。

ビューの階層は次のとおりです (まだ画像をアップロードできないため)。

UIView
-->UIScrollView (large content size 230, 1100)
---->UIView for content
------>UIImageView (background image)
------>UIScrollView
------>UIView
------>PageControl
------>UICollectionView
------>UICollectionView
------>UICollectionView
------>Six labels

実際の UICollectionView のスクロールは水平方向に非常にうまくスクロールします。これは、メインの UIScrollView が上下にスクロールするときにわずかな遅れがあるだけです。

セルに別のクラスを使用する 3 番目の UICollectionView を追加する前に、遅延はまったくありませんでした。

一度に 3 つのコレクション ビューがすべて画面に表示されている場合にのみ、ラグが発生するようです。

実装されている唯一のデリゲート メソッドは scrollViewDidScroll で、サブビューの 1 つを単にサイズ変更するだけなので、これがまったく影響しているとは思いません。

画面上の 3 つの UICollectionView を一度に処理できないという理由だけでしょうか? 簡単に対処できると思っていたでしょう。私ができる明らかな最適化はありますか?

4

1 に答える 1

3

大きな頭痛とかなりの時間の後、私は問題を突き止めました。コレクション ビューとは関係なく、より深い問題を強調するだけです。

ビューにいくつかの影の効果を追加していましたが、これがパフォーマンスに大きな影響を与えるとは思いもしませんでした。これが入っているView ControllerがNavigation Controllerに入れられると、さらに悪化しました。

self.view.layer.shadowOpacity = 0.75f;
self.view.layer.shadowRadius  = 10.0f;
self.view.layer.shadowColor   = [UIColor blackColor].CGColor;

UIScrollViews または UICollectionViews でパフォーマンスの問題を抱えている他の人は、間違いを犯さないようにしてください。この 3 行のコードを削除しても、スクロールが非常にスムーズになるわけではありません。

于 2013-04-15T18:11:04.700 に答える