2010-10-25 2 views
0

Lorsqu'un UIStatusBar est masqué dans une application, l'origine de toutes les vues est (0, 0), le coin supérieur gauche de l'écran. Cependant, quand un statusBar est affiché, l'origine est toujours (0, 0) mais les vues seront déplacées pour ne pas couvrir le statusBar.Est-il possible de changer les origines de l'image d'un écran de l'iPhone comme cela est fait quand un statusBar est affiché ou masqué?

Comment cela fonctionne-t-il? Est-il possible de dupliquer cet effet dans le code? Essentiellement, mon but final est de cacher le statusBar et de le remplacer par un UIView à certains points de l'application (comme l'application Google). Mais j'ai beaucoup de vues et je ne veux pas avoir à les redimensionner après que le statusBar soit caché.

Répondre

2

Vous pouvez créer une vue de conteneur englobant toutes vos vues "normales" et définir des masques autoresizing partout. De cette façon, en rétrécissant la vue de votre conteneur, tout le reste sera automatiquement redimensionné. En fait, c'est ainsi que fonctionnent les UIViewControllers. Mais sachez que, bien que les contrôleurs Apple standard comme UINavigationController sachent comment gérer la barre d'état, ils ne savent rien de ce que vous voulez faire, donc ils vont être confus le plus souvent. Alternativement, vous pouvez toujours afficher votre propre barre d'état en dessous de la barre réelle, en masquant celle-ci en cas de besoin. Mais dans ce cas, vous devrez vous battre contre les contrôleurs fournis par Apple qui vont essayer de se développer lorsque vous cachez la barre d'état. Vous pouvez également jouer avec une disposition à deux fenêtres où la fenêtre supérieure ne chevauche pas la barre d'état, mais je ne suis pas sûr que ce sera plus facile.

Étant donné qu'Apple ne prend pas en charge ce qui précède, attendez-vous à ce que beaucoup de choses s'arrêtent de fonctionner correctement. Peut-être, la meilleure approche est de repenser votre conception de l'interface utilisateur.

Questions connexes