2010-03-26 7 views

Odpowiedz

57
[myView setContentMode:UIViewContentModeRedraw]; 

Można ustawić to w IB, jak również (czyli tryb ustawiony na "przerysować")

+1

To jest preferowany sposób. – yuji

+0

Zobacz oryginalną odpowiedź autora poniżej. setNeedsDisplay jest rzeczywiście właściwym wywołaniem metody. –

+3

'setNeedsDisplay:' jest używany, gdy chcesz programowo wywołać przerysowanie. Gdy chcesz, aby zmiany orientacji wywoływały przerysowanie, "setContentMode:" jest biletem. – wcochran

8

To był błąd związany z czymś zupełnie innym. setNeedsDisplay rzeczywiście powoduje wywołanie drawRect.

+0

Tak 'setNeedsDisplay:' uruchomi przerysowanie, ale wymaga od programisty jawnego wywołania go. "setContentMode:" automagicznie wyzwala odświeżanie po zmianie orientacji. – wcochran

0

na to odpowiedzieć, a pozostałe 94.000 podobne pytania o widoku obrotów/drawRect funkiness,

-(id)initWithFrame:(CGRect)frame 
{ 
    if(self=[super initWithFrame:frame]) { 
     self.autoresizesSubviews=YES; 
     self.autoresizingMask=UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; 
    } 
    return self; 
} 
Powiązane problemy