Appeler setNeedsDisplay dans layoutSubviews?

Considérons une vue avec un arrière-plan personnalisé dessiné dans drawRect: Si la vue change de taille, l'arrière-plan doit être redessiné.

Est-ce une mauvaise idée?

 - (void) layoutSubviews { [super layoutSubviews]; [self setNeedsDisplay]; } 

Si c'est le cas, quelle serait une meilleure alternative étant donné que je ne peux pas contrôler qui change la taille de la vue?

Ne fais pas ça, ce n'est pas nécessaire. Définissez le contentMode de la vue sur UIViewContentModeRedraw :

UIViewContentModeRedraw

Réaffiche la vue lorsque les limites changent en appelant la méthode setNeedsDisplay. Disponible dans iOS 2.0 et versions ultérieures. Déclaré dans UIView.h.

Cela permettra d'atteindre le même effet.