Calling setNeedsDisplay in layoutSubviews?

drawrect, ios, iphone, layoutsubviews, uiview

Solution

Dont do that, it's not necessary. Set the `contentMode` of the view to `UIViewContentModeRedraw`:

UIViewContentModeRedraw

Redisplays the view when the bounds change by invoking the setNeedsDisplay method. Available in iOS 2.0 and later. Declared in UIView.h.

This will achieve the same effect.

Problem

Consider a view with a custom background that is drawn in `drawRect:`. If the view changes size, the background need to be redrawn. Is this a bad idea? ``` - (void) layoutSubviews { [super layoutSubviews]; [self setNeedsDisplay]; } ``` If it is, what would be a better alternative considering I can't control who changes the size of the view?

Original source