iphoneiosobjective-cuiviewcalayer

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


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?


Solution

  • 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.