39 votes

Marge supérieure sur UITableViewController

J'ai un TabBarController, l'un des onglets qui contient un sous-point de vue qui est un navigationController. Je suis ensuite le charger dans le contrôleur de la navigation d'un point de vue qui hérite de forme UITableViewController.

Mon problème est que pour certaines raisons, la vue de la table commence derrière la manette de navigation, pas le haut de l'écran, mais à mi-chemin en bas de la barre de navigation, d'où le haut de la première cellule dans la vue de table est coupée.

Quelqu'un peut-il suggérer des moyens pour déplacer le UITableViewController bas?

99voto

sunkencity Points 2484

Résoudre par programmation:

   - (void)viewDidLoad {
       UIEdgeInsets inset = UIEdgeInsetsMake(20, 0, 0, 0);
       self.tableView.contentInset = inset;
   }

7voto

Henrik Erlandsson Points 1580

Ce "caché derrière la barre de Navigation" problème est dû à iOS 7 à l'aide de mise en page en plein écran automatiquement. Voir l'iOS 7 Guide de Transition.

C'est un peu sournois, car il s'affiche comme dans iOS 6 dans le Simulateur (mise en page-sage; ie. pas rentré dans le derrière).

Est votre barre de navigation translucide? La mienne était, et la valeur de non-translucide fixe sur Iphone iOS 6, iPhone iOS 7, et le Simulateur 7.0 bâtiment avec XCode 5. (Dans mon cas, je l'ai mis à translucide aspect visuel.)

-1voto

paulthenerd Points 6568

Vous pouvez définir le cadre de la UITableView explicite de X,position Y en définissant le cadre de la propriété sur la vue. Ou vous pouvez modifier la même propriété à l'aide de interface builder, selon que vous avez ajouté la tableview via IB ou dans le code.

par exemple.

myTable.frame = CGRectMake(0.0, myTable.frame.origin.y + NAV_BAR_HEIGHT, myTable.frame.size.width, myTable.frame.size.height);

Ce sera la position de la table matable (qui est un pointeur vers la UITableView) en dessous de la barre de navigation, vous pouvez également avoir besoin d'ajuster la hauteur de la table en conséquence. La hauteur de la barre de navigation qui je suis indiquant avec une constante est de 44,0.

En général, je fais ce type de vue de l'ajustement si il a été nécessaire dans les viewWillAppear de la vue-contrôleur responsable. C'est pas souvent que vous aurez besoin de faire ce type de réglage de sorte qu'il peut être quelque chose que vous pouvez corriger en changeant la façon dont vos points de vue sont en cours d'installation.

Sans plus de détails de la façon dont votre point de vue de la configuration, il est difficile d'être plus précis.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X