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?
Since CALayer on the iPhone does not support layout managers, I think you have to make your view's main layer a custom CALayer subclass in which you override
layoutSublayers
to set the frames of all sublayers. You must also override your view's+layerClass
method to return the class of your new CALayer subclass.I had the same problem. In a custom view's layer I added two more sublayers. In order to resize the sublayers (every time the custom view's boundaries change), I implemented the method
layoutSubviews
of my custom view; inside this method I just update each sublayer's frame to match the current boundaries of my subview's layer.Something like this: