La taille de la classe spécifiquement pour le portrait de 3,5 pouces (iPhone 4S) Xcode 6?
Je suis réglage de mon INTERFACE utilisateur de l'App, mais j'ai un problème que je ne peux pas résoudre.
Que je peux voir, Compact hauteur affecte tous les iPhones en vertu de 4.7 pouces, mais mon INTERFACE est bien sauf pour l'iPhone 4S (3.5 pouces).
Je ne veux pas modifier la mise en page pour tous les iPhones en vertu de 4,7 pouces, juste l'iPhone 4S, en même temps, je ne veux pas de la gauche ce dispositif.
Il n'y a aucune solution de contournement afin que je puisse régler les modifications, mais seulement et uniquement pour les 3.5 pouces portrait? ou devrais-je dire adieu à 100 millions d'appareils là-bas?
Je sais que c'est une question difficile et presque d'un sondage d'opinion, mais techniquement parlant, je voudrais trouver mon meilleur moyen de sortir d'ici.
- Découvrez ma réponse ici: stackoverflow.com/a/28093987/1135714
- Merci @CeceXX entendez-vous demander pour un iPhone 4S dans le code, le cas échéant, définir les contraintes manuellement?
- Je trouve la création de
NSLayoutConstraints
contraintes via le code et le réglage de leurconstant
valeur en fonction de l'appareil de l'utilisateur à l'aide de vraiment cool. Avoir un essai. - Quel est votre problème spécifique avec l'INTERFACE utilisateur sur un écran de 3.5"? Les classes de taille ne vous permettra pas de distinguer entre le 4S et le téléphone dans la section 4.7", mais il y a peut être quelque chose que vous pouvez faire avec les contraintes qui vont la faire fonctionner avec tous les écrans (comme une contrainte par rapport à la hauteur de la vue).
- Merci @rdelmar auriez-vous l'esprit l'expansion de votre approche?
- Je peux développer si je sais ce que votre problème spécifique. Quels éléments de l'INTERFACE utilisateur vous avez, et ce qui est mauvais sur l'écran de 3.5"?
- Techniquement parlant, dans mon Application tous les UI éléments s'intègrent bien dans tous les iPhones portrait mais les iPhone4S, mais la taille de la classe ne font pas de différent (je ne sais pas pourquoi, je le fais...) Donc, j'aime l'idée de vérifier si c'est un 4S et si oui, réglage de l'contraintes spécifiquement pour elle.
- Le point de l'utilisation de contraintes est de sorte que vous n'avez pas à vérifier ce que l'écran que vous utilisez. Vous n'avez toujours pas répondu à ma question sur les détails. En gros, vous avez 2 choix; vous pouvez faire vos éléments d'INTERFACE utilisateur de se rapprocher, ou vous pouvez les faire plus petits. Les deux de ces choses qui peut être fait automatiquement en fonction de la hauteur de l'écran. Si vous ne pouvez pas utiliser ces moyens pour obtenir le bon look, vous pouvez toujours vérifier la taille de l'écran dans le code, et l'utiliser pour remplacer ou modifier une contrainte. Vous devriez poster une image de votre INTERFACE utilisateur, et de décrire quelles sont les contraintes que vous avez essayé.
- Je vous remercie. Oui je sais que je peux apporter des modifications à faire des choses différentes, de sorte qu'ils peuvent tenir dans les petits écrans. Mais je suis paresseux, je ne veux pas. Je suis catégorique sur ce sujet. 2ème question, donnez-moi un instant et je vais poster ce que j'ai.
- Merci pour vos commentaires je suis venu avec une solution décente. Check it out.
- vous pouvez visiter ma réponse ici : stackoverflow.com/a/37325714/2477632
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de classe de taille pour l'iPhone de 3,5 pouces.
J'ai donc fait une catégorie pour NSLayoutConstraint pour le modifier dans Interface Builder qui est très facile à utiliser:
–
NSLayoutConstraint
à l'aide deExtensions
. Surchargeant les méthodes existantes deExtensions
semble être découragé.Une approche juste travaillé pour moi a été d'utiliser les mêmes contraintes pour l'ensemble compact de la taille des classes, mais d'utiliser une combinaison d'un supérieur ou égal à la contrainte et les priorités pour modifier la façon dont les vues ont été positionnés sur l'iPhone 4 écran plus petit.
J'ai une contrainte entre le haut de pavé numérique vue et ses superview qui est configurée pour être supérieure ou égale à 160 (avec une priorité de 1000) et une contrainte entre le bas du clavier de vue et le bas de la superview qui est définie à une constante de 30 ans (mais avec une priorité inférieure à 750).
Cela signifie que sur l'iPhone 4, où il n'y a pas assez de place pour plus de 160 points au-dessus du clavier et de 30 points ci-dessous puis c'est l'espace ci-dessous qui va.
Alors que cette approche peut ne pas fonctionner dans tous les cas, je vous encourage d'ailleurs à penser qu'il y a un ensemble de priorités qui permettront à vos points de vue pour ajuster la façon dont vous souhaitez sur le petit écran.
Swift 3 version de Pavel Alexeev de la solution. En Swift, vous ne pouvez pas utiliser stockées propriétés dans les extensions, donc nous appliquer directement sur le
constant
propriété.@tous je ne peux pas rendre les choses plus petites, parce que je fais face à pickerviews qui arrive d'avoir seulement trois valide hauteurs pour UIPickerView (162.0, 180.0 et 216.0). Les tailles et les contraintes de distance.
iPhone Tailles: http://www.idev101.com/code/User_Interface/sizes.html , 4S est unique.
Même si mon approche, c'est un peu laid obtenir les choses, à peu près sur mon point de vue.
Donc je sais que c'est loin d'Goodville, de ne pas me frapper vers le bas, juste pour le partage:
Swift 5.0 code pour Pavel Alexeev de la solution., comptabilité pour certains de la syntaxe des mises à jour et aussi la largeur de l'écran, car j'ai trouvé que si l'appareil est tenu dans le paysage lorsque l'application est lancée, la hauteur de l'écran n'est pas le véritable portrait de la hauteur, mais le paysage actuel de la hauteur. Donc, je vérifie que la largeur est pris en compte, aussi. Si la hauteur est inférieure à 660 ET la largeur est inférieure à 375, nous avons un portrait de SOI ou 5s.