2010-10-23 4 views
2

Je souhaite afficher un message aux utilisateurs de mon application dans l'UIStatusBar, mais je souhaite conserver la fonctionnalité scrollsToTop afin qu'un utilisateur puisse appuyer sur la barre d'état et faire défiler une table vers le haut.Est-il possible de couvrir UIStatusBar avec une vue tout en conservant la fonctionnalité scrollsToTop?

Je l'ai regardé en ajoutant un UIWindow au-dessus de la barre d'état actuel comme dans cette question: Add UIView Above All Other Views, Including StatusBar

Mais il désactive les touches de la barre d'état.

Remarque: J'ai vu plusieurs applications utilisant la zone statusBar pour afficher des messages tels que l'application "Evernote".

Merci pour l'aide!

Répondre

0

Est-ce que vous masquez le statusBar? Il est imprudent de le garder là mais de tirer parti de sa position, car dans différents pays, avec différents opérateurs mobiles, les éléments de statusBar ont des positions un peu différentes. J'ai vu une application y dessinant des icônes de statut. Laid!

Donc je suppose que vous voulez ajouter une sous-vue à la position de statusBar. Pourquoi n'interceptez-vous pas les événements tactiles dans cette vue et envoyez votre tableVoir un message pour faire défiler vers le haut?

+0

Il y a 2 raisons pour lesquelles je suis résistant à cette approche. 1) Je ne veux pas repositionner toutes mes vues, qui vont essayer de réajuster leur position en haut de l'écran après que la barre d'état a été supprimée. et 2) je ne suis pas sûr d'où ajouter le subView. Mon application est essentiellement une application drillup vers le bas, mais je souhaite que les informations que je place dans la barre d'état soient visibles depuis toutes les vues. Comment puis-je ajouter une vue qui ne sera pas poussée ou sautée avec les autres vues? – Jonah

+0

Si vous voulez dessiner quelque chose dans la zone de la barre d'état, vous devez y placer une vue, je suppose. Rappelez-vous, même un UILabel est une vue. La vue que vous y mettez peut intercepter des événements et faire défiler la vue de manière appropriée. Du délégué de l'application, vous devriez avoir accès à UIWindow (qui étend en fait UIView), vous pouvez essayer d'y ajouter. – Michal

4

Jetez un oeil à https://github.com/myell0w/MTStatusBarOverlay. En appuyant dessus, vous pouvez basculer pour ne pas couvrir toute la barre d'état, puis vous pouvez lancer la barre d'état et revenir à la fonction de défilement vers le haut.

Voici une capture d'écran, le côté gauche montre la version étendue, le côté droit du rétreint un:

MTStatusBarOverlay

Questions connexes