J'ai une barre NAV dans une application iPhone avec un uibarbuttonitems personnalisé: le homeperson.png est 20 x 18. p> Ça a l'air bien Mode portrait, mais en mode paysage, l'image 20x18 sur le bouton est trop grande pour être belle. On dirait que iOS fait des tâches sur leurs boutons standard pour réduire l'image si nécessaire lorsqu'il est dans une barre de navigation plus mince. P> Quelle est la meilleure façon de gérer cela? P> Un autre Exemple est lorsque j'ai un bouton personnalisé dans le titreview de la barre de navigation. J'en ai besoin pour rétrécir aussi lorsque l'application tourne lorsque l'application tourne. P> Merci d'avance pour tous les pointeurs que vous pouvez me donner! P> p>
3 Réponses :
La taille d'une barre d'outils et une barre de navigation est de 20 x 20, alors lorsque vous fournissez une image qui ne remplit pas ces dimensions, vous laissez jusqu'à redimensionner / échelle votre image qui cause votre problème. Redimensionner / Échelle votre image sur 20x20 et votre image doit être correcte dans le portrait et le paysage. P>
Merci de votre aide. Mon image est maintenant 20x20, mais elle n'a toujours pas échoué comme les images du bouton système. Donc, j'ai vraiment le même problème. Il semble trop gros pour un bouton plus petit sur la barre de navigation plus mince.
Avez-vous essayé de redimensionner / de répamer manuellement de l'image ou de modifier l'image avec une version de paysage spécifique lorsqu'un changement d'orientation est détecté?
On dirait que vous devez le faire manuellement, comme suggéré. Dommage.
J'ai un problème similaire. Maintenant, j'utilise le bouton personnalisé sur le bouton. par exemple. Voici mon catalogue d'Uibarbuttonitem. Vous pouvez l'utiliser pour créer un bouton de barre personnalisé.
// adjust the navigation Item top, otherwise it is not proper set after rotation _centralRootViewController.navigationItem.leftBarButtonItem.customView.top = 5; _centralRootViewController.navigationItem.rightBarButtonItem.customView.top = 5;
Steipète a mentionné cela dans les commentaires mais je me sens comme si cela doit être une réponse maintenant. A partir de iOS 5, vous pouvez utiliser initialisateur uibarbuttonitem : juste définir Après quelques tests, j'ai remarqué que l'iPhone rétrécisse la barre de navigation et donc les Uibarbuttonitems sur la barre de navigation mais l'iPhone 6 Plus n'est pas STRUT> . Les 6 plus semble conserver la barre de navigation à une hauteur de 44px, tandis que l'iPhone ordinaire la rétrécit à 32px. À cause de cela, les 6 plus aussi J'ai testé cela en utilisant une image de taille plus petite pour < Code> LandscapeImagePhone code>, mais une image complètement différente. L'image n'a jamais changé sur les 6 plus. P> Le Documentation Apple pour cet initialisateur stipule que L'image à utiliser pour l'article dans les barres de paysage dans l'idiome UIuserInterfaceidiomphone. P>
BlockQuote> à partir de iOS 9.2, le 6 Plus Signaler comme alors peut-être que cela ne Il repose tellement sur l'uiuserinterfaceidiom autant que sur la hauteur de la barre de navigation. Je ne sais pas avec certitude. Notez simplement que cette incohérence peut être «fixe» à l'avenir et provoquer un comportement différent. P> P> landscapeimagephone code> image sur une version plus petite de l'image Vous voulez être redimensionné dans le paysage. P>
PaysCapeimagePhone code> dans le paysage. P>
p> Cependant, soyez conscient des éléments suivants à partir de IOS 9.2 sur l'iPhone 6 Plus: H2>
PaysCapeImagePhone code> est: P>
uiuserinterfaceidiomphone code> dans le portrait et le paysage. Auparavant, le 6 plus utilisé pour être
uIuserinterfaceidiomunspecified code>. Je ne suis pas vraiment sûr quand cela a été mis à jour. Mais, comme il est maintenant
uIuserinterfaceidiomphone code>, selon la documentation, le
paysageImageImphone code> doit également s'appliquer à 6 plus. P>
indice i> pour les utilisateurs iOS5. Il y a maintenant un [[uibarbuttonitem alloc] InitwithImage: <# (UiImage *) #> PaysageImageImPhone: <# (UiImage *) #> Méthode.
Mes articles sont dans une barre de navigation afin que leur style soit toujours uibarbuttonitemstyleford, à moins que je ne les crée à l'aide d'une vue personnalisée. Dans ce cas, y a-t-il une façon de redimensionner ma vue personnalisée à 18x18 px comme éléments système?