2010-08-27 13 views
1

Le HIG fait une déclaration que sur l'iPad, d'envisager de s'éloigner des contrôles similaires à la façon dont l'application photo intégrée le fait. Comment cela est-il accompli? Dans mon cas, j'ai une image occupant la majorité de l'écran avec une barre d'onglets et éventuellement une barre d'outils et potentiellement d'autres contrôles. Comment est-ce que je disparais tout sauf l'image. Et ramenez-le si l'utilisateur touche l'écran.Comment faire disparaître les contrôles sur l'iPad/iPhone selon les directives de l'interface

Merci

Répondre

2

Je pense que vous avez 2 solutions de rechange. Tout d'abord, par l'animation de base, vous pouvez définir l'alpha à 0 dans environ 0,5 ou 1 seconde, l'autre façon est de placer la barre d'outils et la barre de navigation à caché. Si vous travaillez avec un contrôleur de navigation, vous pouvez appeler

[self.navigationController setToolbarHidden:YES animated:YES]; 

ou

[self.navigationController setNavigationBarHidden:YES animated:YES]; 

ce faire probablement ce que vous voulez.

"Et le ramener si l'utilisateur touche l'écran."

Pour cela, vous pouvez mettre en œuvre des méthodes telles que:

– touchesBegan:withEvent: 
– touchesMoved:withEvent: 
– touchesEnded:withEvent: 
– touchesCancelled:withEvent: 

cela fonctionnera si vous travaillez sur une sous-classe UIViewController seulement.

+0

Je peux le faire disparaître, mais je ne peux pas obtenir la vue ci-dessous pour redimensionner. J'ai un UIImageView à l'intérieur d'un UIScrollView dans un onglet pour UITabViewController. J'ai écrit du code pour monter la pile de la vue en imprimant son cadre. La hiérarchie a UIImageView, UIScrollView, UIView, puis UIViewControllerWrapperView. Tout le monde a la taille correcte jusqu'à atteindre UIViewControllerWrapperView. Quelle est cette chose et comment puis-je définir sa taille? – David

+0

travaillez-vous avec un contrôleur de navigation? ou juste des barres de navigation/barres d'outils? – Omer

+0

Problème avec le contrôleur de barre d'onglets. L'affichage géré par le contrôleur d'onglet ne se redimensionne pas lorsque la barre d'onglets est masquée. Par conséquent, la zone où se trouvait la barre d'onglets reste blanche, non tirée. La seule façon que j'ai trouvée est de remplacer toute la vue du contrôleur d'onglets par une vue de remplacement quand on cache la barre d'onglets. – David

2

Bonne question. Il existe plusieurs façons de procéder, car certains contrôleurs de vue peuvent avoir des méthodes intégrées pour se cacher (par exemple, UINavigationController). Pour tout ce qui est un UIView, ou sous-classe, je recommande quelque chose comme ce qui suit:

[UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1.0]; 
    //Fade out a UIImageView over a one-second duration 
    imageView.alpha = 0.0; 
    //Fade out the TabBar, assuming it's owned by the app delegate 
    appDelegate.myTabBar.tabBar.alpha = 0.0; 
    [UIView commitAnimations]; 

Hope this répond à votre question.

Andrew

+0

Ok, merci. J'ai effectivement essayé quelque chose comme ça. Dans mon cas, la barre d'onglets s'est évanouie, mais son espace n'a pas été récupéré. L'affichage de l'image que je veux voir ne couvre pas l'espace où se trouvait la barre d'onglets. Ai-je besoin de redimensionner l'image dans le cadre de l'animation? Si c'est le cas, comment? Je suppose que je définis le cadre sur le ImageView à la taille est à l'écran entier. Comment puis-je connaître le cadre de l'ensemble de l'écran? Question connexe, que signifie l'option dans IB lors de la configuration de la vue principale du contrôleur d'onglet, "veut plein écran"? – David