2010-05-19 4 views
7

J'ai une application avec une barre d'onglets et une barre de navigation. Je pousse un contrôleur de vue qui est utilisé pour montrer des photos, un à la fois. Il montre initialement les barres et les commandes avant/arrière; après un délai, ceux-ci masquent, en utilisant setNavigationBarHidden:animated: et une transformation personnalisée (CGAffineTransformMakeTranslation) dans la barre d'onglets. Cela fonctionne, mais la vue des contrôleurs de vue, qui montre la photo, saute de haut en bas. La même chose est vraie si je laisse la barre d'onglet hors de l'équation.Comment empêcher le redimensionnement/la transformation de vue lorsque UINavigationBar cache/affiche

Comment puis-je empêcher le UINavigationBar de déplacer ma vue? Je voudrais que la photo reste fixe à l'écran, avec la barre de navigation tombant sur le segment supérieur de celui-ci.

+0

J'ai traité ceci en ignorant le UINavigationController et en présentant la vue d'image modalement. Cela fonctionne, mais n'est pas entièrement satisfaisant. –

+0

Hey, j'ai réussi à résoudre mon problème - peut-être que cela fonctionne pour vous aussi. Découvrez-le: http://stackoverflow.com/questions/2881905/imageview-changes-frame-bounds – Icky

Répondre

0

Je sais que c'est une vieille question, mais j'accompli que par la désactivation de « AutoResize subviews » dans Interface Builder

alt text

0

Je n'ai pas été en mesure de trouver une bonne façon de gérer cela, sauf pour définir le style navigationBar à translucide comme dans:

theNavigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent; 

autre que de créer une autre barre de navigation et l'ajout de boutons pour eux, c'est le meilleur (et il semble être ce que Apple fait aussi bien dans son application photo)

1
[[navigationController navigationBar] setBarStyle:UIBarStyleBlackTranslucent]; 
[[navigationController navigationBar] setAutoresizesSubviews:NO]; 

cela semblait faire l'affaire pour moi!

1

Si cette question et fixe avec une classe qui a hérité de UINavigationController

-(void)viewWillAppear:(BOOL)animated 
{ 
    self.navigationBar.translucent = YES; 
} 

Travaillé grand pour moi, n'a pas eu d'appliquer un style à UIBarStyleBlackTranslucent. Donc ça a gardé mes couleurs.

Questions connexes