Question

Je l'ai sous-classé UITableViewCell et incorporé des sous-vues via la méthode layoutSubviews. Toutes les vues sont allouées et initiées dans la méthode initWithStyle et des cadres sont définis dans la méthode layoutSubviews, comme suit:

initWithStyle:... {
UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectZero];
myLabel.someProperties = Configured;
[self.contentView addSubview:myLabel];

layoutSubviews {
CGRect labelRect = CGRectMake(10.0f, 5.0f, 35.0f, 180.0f);
myLabel.frame = labelRect;

Réglage du shouldAutoRotateOrientation YES dans la rotation viewController le NavigationController, tableView et UIToolbar de façon appropriée, mais le contenu des tableViewCells ne bouge pas. Je ne suis pas clair sur où ou quoi ajouter jusqu'à AutoResizingMasks. Les combinaisons que j'ai essayé jusqu'à présent ont rien fait. Quelqu'un peut-il me donner un coup de main?

Merci!

Était-ce utile?

La solution

La réponse que je suis venu avec est d'utiliser conditionnelle de codage pour placer les cadres de vue, en fonction de l'orientation, dans la méthode layoutSubviews

-(void)layoutSubviews {
    //For portrait mode (NOT PORTRAIT UPSIDE DOWN)
    if ( UIDeviceOrientationIsPortrait([[UIDevice currentDevice]orientation]) ) {
        CGRect portraitFrame = CGRectMake(Portrait Frame Coordinates);
        myLabel.frame = portraitFrame;
    } else {
    //For landscape modes
        CGRect landscapeFrame = CGRectMake(landscape frame coordinates);
        myLabel.frame = landscapeFrame;
    }
}

Semble piraté ensemble, mais cela fonctionne dans UITableViewCells sous-classé

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top