2012-08-31 2 views
0

Je suis en train de le cadre d'un UITableView dans viewDidLoad, également après que le dispositif est mis en rotation pour assurer qu'il reste dans l'emplacement approprié. Voici mon code:UITableView ne redimensionne pas correctement jusqu'à ce que je tourne dispositif

- (void)viewDidLoad 
{ 
    [self setItemBoundaries]; 
} 

- (void) setItemBoundaries { 
    if (UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation)) { 
     self.raceTable.frame = CGRectMake(20,502,728,472); 
    } 
    else { 
     self.raceTable.frame = CGRectMake(20,20,492,708); 
    } 
} 

- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { 
    [self setItemBoundaries]; 
} 

Toutefois, lorsque les charges d'application, la table est de taille incorrecte (uniquement en mode paysage): enter image description here

Après avoir fait tourner à travers le portrait de retour au paysage, il semble bien: enter image description here

Qu'est-ce que je fais mal?

Répondre

1

mettre la -setItemBoundaries dans la méthode -viewWillAppear:

- (void)viewDidLoad 
{ 
    // [self setItemBoundaries]; 
} 

et:

- (void)viewWillAppear:(BOOL)animated { 
    [self setItemBoundaries]; 
} 

et ALTO ...

+0

Merveilleux, merci! Acceptera une fois que ça me le permettra. :-D – lemontwist

+0

@lemontwist, vous êtes les bienvenus! :) – holex

0
did... 

... est appelée après la rotation a eu lieu, et donc peut-être après la table a été établi.

Essayez,

willRotateFromInterfaceOrientation 

... pour définir les nouvelles limites avant que la table est redessinée.

+0

... il a écrit _Après tournant à travers le portrait de retour au paysage , ça a l'air bien, alors pourquoi lui suggérez-vous de changer les parties fonctionnelles du code? – holex

Questions connexes