2009-09-06 7 views
1

J'ai une tableview qui occupe seulement le tiers inférieur de ma vue.Redimensionner les cellules lors de la rotation UITableView

je tourne 90 degrés à l'aide CGAffineTransform et redimensionnez:

[UIView beginAnimations:@"rotate" context:nil]; 
CGRect oldFrame = self.table.frame; 
CGPoint oldCentre = self.table.center; 
// Swap the width and height 
self.table.frame = CGRectMake(0.0, 0.0, oldFrame.size.height, oldFrame.size.width); 
self.table.transform = transform; 
self.table.center = oldCentre; 
[UIView commitAnimations]; 
[self.table reloadData]; 

Il passe d'un mode portrait gros et court à une vue du paysage grand et maigre. Et encore une fois.

Mon texte de cellule est aligné sur le centre. En revenant de la vue grande et maigre à la vue courte et grosse ne fonctionne pas. Les cellules sont redimensionnées la première fois, mais restent redimensionnées!

Comment obtenez-vous les cellules à redimensionner correctement?

Répondre

3

j'ai fait un peu plus la lecture et réalisé mon erreur. Utilisez les limites plutôt que le cadre.

CGRect oldBounds = self.table.bounds; 

Cela semble bien fonctionner.

1

Cela devrait redimensionner pour vous, je ne pense pas tout à fait c'est ce que vous voulez bien, mais peut-être il vous Rapprochez

-(CGFloat)tableView:(UITableView *)tableView 
    heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return 180; //180=pixel size 
} 
Questions connexes