2017-10-20 13 views
0

Essayer d'utiliser les stackviews dans ma nouvelle application. C'est ainsi que je veux que l'application ressemble. Tous les UIViews sont des carrés et une échelle avec un ratio de 1: 1. Les étiquettes doivent être placées juste à l'extérieur des uiviews. Labeltext devrait également évoluer.Stackview swift iPhone/iPad

enter image description here

a essayé de mettre les éléments en piles comme celui-ci, mais il se comporte bizarre. Comment puis-je rendre le carré intérieur (avec les uiviews) aussi grand que possible et faire flotter les étiquettes autour du carré?

+1

bizarre comment Behaving? S'il vous plaît ajouter ce que vous avez essayé et ce que les résultats ont été, et exactement ce que vous ne comprenez pas sur ce qui se passe. – dannyzlo

+0

Je voudrais que le carré ait une largeur totale d'environ 80% de la largeur de l'écran et les étiquettes 10% chacune. Est-il possible de contrôler les vues de la pile comme ça? – Apprentice

+1

Oui, il y a plusieurs façons d'y parvenir - avez-vous essayé d'utiliser un 'UIStackViewDistribution' de' .fillProportionally'? Si les tailles de contenu des trois éléments sont relativement 10%, 80% et 10%, alors ils rempliront l'espace horizontal dans cette proportion. – dannyzlo

Répondre

1

Je joins la solution avec UIView être les carrés ayant un rapport d'aspect 1: 1 et minimum/valeur maximum pour les étiquettes

Vous pouvez modifier l'espacement des étiquettes contenant des stackview par programme pour faire correspondre les bords avec vue sur la place de UIViews

S'il vous plaît vérifier les contraintes de UIViews, les relations avec d'autres vues (comme largeurs/hauteurs égales, etc.) la distribution et l'espacement des stackviews

cette case est cochée sur l'iPhone 8/SE et iPad Pro et vu bien dans l'aperçu de storyboard sauf l'espacement de UILabels qui ca n être définies par programme

La solution est téléchargée sur GitHub here

+0

Merci pour votre effort. Votre solution est idéale pour l'iPhone 8 plus, mais les étiquettes ne suivent pas uiview-square dans d'autres tailles. – Apprentice

+0

@Apprentice, modifiez l'espacement dans stackview par programme pour les autres iPhones – ahmed