2008-12-11 5 views
1

J'ai un UINavigationController contenant un UIViewController initialisé avec un UIView.iPhone - l'installation du firmware 2.2 a provoqué un comportement d'affichage étrange

Le UINavigationController dispose également d'un UINavigationBar comme d'habitude.

Auparavant, lorsque je positionnai un nouvel élément dans le UIView à 0,0 en utilisant

CGRectMake(0,0,height,width); 

Il positionnerait directement sous la UINavigationController. Cependant, depuis la compilation avec 2.2, il positionne maintenant 0,0 directement derrière le UINavigationBar (où vous attendez que 0,0 soit normalement). Cela ne se produit que lorsque l'application est recompilée avec le 2.2 SDK - l'application restante sur l'iPhone avant que la mise à niveau fonctionne comme prévu.

chose est, je veux bien ma demande de tirer correctement avec 2.2 ainsi que rétrocompatible avec 2.1

Quelqu'un at-il vu ce comportement, ou savoir quelque chose de plus à ce sujet?

Merci!

Répondre

1

Il y a un fil conducteur (très utile) sur les choses que 2.2 a divisées sur les forums de développement d'Apple. Il inclut ce problème (mais sans aucun correctif). Je l'ai vu mentionné ailleurs aussi.

Il vaut la peine de le vérifier sur

https://devforums.apple.com/message/12297#12297 (lien fixe)

0

Il semble que ce nouveau comportement est le comportement « prévu », ce qui est logique. Dommage qu'il soit difficile de rendre mon application correctement dans 2.1 et 2.2.

Il semble aussi que si je tripote mon paramètre transparent/opaque UINavigationBar, je trouverai une bonne combinaison de bugs qui le feront apparaître correctement dans les deux.

Je vous ferai connaître mes découvertes.

0

Du fil lié ci-dessus.

« fixe en faisant mes barres de navigation Opaque (utilisé pour être translucide) Je pense peut-être qu'il est un correctif de bug car cela me semble logique que la vue doit apparaître derrière un barre translucide. "

Alors oui, il semble que ce soit un comportement intentionnel. Raisonnable, mais bête, néanmoins!

0

j'ai pu faire le positionnement de la vue tout en utilisant UIBarStyleTranslucent même dans les deux 2.1 et 2.2 en procédant comme suit:

Définissez la vue de mon viewcontroller à une vue personnalisée que j'ai créé. Faites en sorte que l'affichage personnalisé étende UIScrollView et, dans sa méthode drawRect, dessine un arrière-plan noir et définisse son contenu à la taille de la vue.

J'espère que cela aide =)