Je souhaite afficher un UIButton dans le pied de page UITableView (devrait être exactement le même pour l'en-tête).UITableView tableFooterView redimensionnement bizarre
Ce code est dans le viewDidLoad de mon TableViewController:
UIButton *footerShareButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[footerShareButton setFrame:CGRectMake(10, 0, 70, 50)];
NSLog(@"%f", footerShareButton.frame.size.width);
[self.tableView setTableFooterView:footerShareButton];
NSLog(@"%f", footerShareButton.frame.size.width);
NSLog(@"%f", self.tableView.tableFooterView.frame.size.width);
Cependant, ce code ne fonctionne pas. La largeur du bouton est beaucoup trop grande, elle est de 320. (La hauteur est correcte cependant.) Les premières sorties NSLog 70, la deuxième et la troisième sortie 320. Il semble donc que la méthode setTableFooterView redimensionne étrangement le bouton.
J'ai résolu ce problème en mettant l'UIButton dans un autre UIView avant de le placer comme le pied de la table:
UIButton *footerShareButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[footerShareButton setFrame:CGRectMake(10, 0, 70, 50)];
UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(10, 0, 70, 50)];
[aView addSubview:footerShareButton];
[self.tableView setTableFooterView:aView];
[aView release];
Cela fonctionne, le bouton a la bonne largeur.
Cependant, je ne comprends pas pourquoi le premier exemple de code ne fonctionne pas. Quelqu'un peut-il expliquer?
Eh oui, voilà, il ne redimensionne le point de vue que j'ai créé aussi, je n'ai pas remarqué. Je vous remercie. Je pense qu'il devrait être mentionné dans les documents que la définition de la propriété tableFooterView redimensionne la vue, cela m'aurait permis de gagner du temps. – avf