C'est avec Xcode 4.6 et l'iPhone, mais je crois qu'il va travailler dans Xcode 5.
1)Dans Xcode cliquez sur vous la vue de la table pour le sélectionner.
2)Dans les services de volet (voir photo 1) sélectionnez la contrainte pour l'affichage de la table hauteur, cliquez sur la petite icône en forme d'engrenage et choisissez "Promouvoir à l'utilisateur de contrainte". L'icône de l'onu le droit de changer de couleur du violet au bleu (voir photo 2)
![Table view heigth constraint]()
![enter image description here]()
3)Dans le contrôleur affiche la table vue de créer un débouché à cette contrainte:
@property (strong, nonatomic) IBOutlet NSLayoutConstraint *dynamicTVHeight;
4)mettre ce code dans la même vue contrôleur:
- (void)viewWillAppear:(BOOL)animated
{
// just add this line to the end of this method or create it if it does not exist
[self.mainTable reloadData];
}
-(void)viewDidLayoutSubviews
{
CGFloat height = MIN(self.view.bounds.size.height, self.tableView.contentSize.height);
self.dynamicTVHeight.constant = height;
[self.view layoutIfNeeded];
}
Cela devrait résoudre votre problème.
Mise à jour
Vous pouvez omettre l'étape 2) comme Xcode automatiquement favorise la contrainte pour l'utilisateur contrainte lorsque vous créez un exutoire pour elle.
C'est un lien vers un exemple de projet qui fait ce que vous voulez. Le télécharger et de le tester avec Xcode 5. Il devrait fonctionner.
https://github.com/jcatalan007/TestTableviewAutolayout
Pour Xcode 5 regarder dans la documentation de la façon dont vous pouvez accéder à la contrainte dans Interface Builder.