CALayers didn't get resized on its UIView's bounds change. Why?

Geri Borbás picture Geri Borbás · Mar 23, 2010 · Viewed 78.2k times · Source

I have a UIView which has about 8 different CALayer sublayers added to its layer. If I modify the view's bounds (animated), then the view itself shrinks (I checked it with a backgroundColor), but the sublayers' size remains unchanged.

How to solve this?

Answer

Chadwick Wood picture Chadwick Wood · Nov 4, 2010

I used the same approach that Solin used, but there's a typo in that code. The method should be:

- (void)layoutSubviews {
  [super layoutSubviews];
  // resize your layers based on the view's new bounds
  mylayer.frame = self.bounds;
}

For my purposes, I always wanted the sublayer to be the full size of the parent view. Put that method in your view class.