Take the 2-minute tour ×

I have a UICollectionView with some custom cells, it uses the flow layout and it has 3 columns on landscape and 2 columns on portrait. When I started the app on landscape, scrolling gives me 55-60 FPS, which is fairly good. However, after I rotate for some reason it drops down to 30 FPS and under. Any idea how rotation could destroy FPS in scrolling?

I've heard some talk in WWDC video's that rasterization might be causing it. Is it true that I'd have to turn off and on back rasterization on rotation?

share|improve this question
add comment

1 Answer

up vote 0 down vote accepted
  • Are you running any other animations while scrolling? These will affect performance.
  • Are you using the CALayer shadow property on any elements? You may be better off using an shadow image instead.
  • Do your interface elements (or anything moving, for that matter) contain transparency? Check this by using the simulator and selecting Debug - Color Blended Layers.

Blending slows down performance a great deal, so use opaque views wherever you can.

share|improve this answer
But why does it become choppy after orientation.. when I scroll in the initial orientation it works fine. –  adit Dec 14 '12 at 0:59
Do you have more elements on the screen? –  Alexander Dec 14 '12 at 10:01
The elements are the exact same elements, it's just smaller –  adit Dec 14 '12 at 18:32
Okay, in which case, run it through the CoreAnimation tool in Instruments. You will be able to see the frame rate drop and can drill down to find the methods causing the blocking of the main thread. –  Alexander Dec 20 '12 at 13:27
add comment

Your Answer


