Comment concevoir la disposition suivante avec StackView

enter image description here

Je sais qu'il peut être facilement créé sans utiliser stackview, mais est-ce possible d'utiliser stackview car j'ai beaucoup d'interface utilisateur déjà conçue à l'aide de stackview comment puis-je ajouter un diviseur entre les vues comme l'image ci-dessus

Pour cela, j'ai défini les contraintes suivantes

enter image description here

** Mais au moment de l'exécution, cela indique ** entrez la description de l'image ici

2
Jaydeep Vyas 19 août 2017 à 10:16

2 réponses

Meilleure réponse

Vous pouvez utiliser un simple Autolayout constraints pour obtenir ce type d'interface avec un UIStackView.

L'image ci-dessous décrit les hierarchy and constraints que vous pouvez appliquer:

enter image description here

Les boutons Accept and Reject ont également une contrainte Equal Width.

Capture d'écran de sortie:

enter image description here

3
PGDev 19 août 2017 à 08:51

Vous pouvez le faire en utilisant UIStackView s, voici comment:

Tout d'abord, créez une sous-classe de UIView à utiliser comme classe de UIView entre les 2 boutons.

class CustomWidthView: UIView {

    override var intrinsicContentSize: CGSize {
        return CGSize(width: 1, height: self.frame.height)
    }
}

Il vous suffit de remplacer intrinsicContentSize.

Maintenant, ajoutez vos 2 boutons et un UIView vide entre eux, et définissez la classe du UIView sur CustomWidthView. Incorporez vos 2 boutons et la vue entre eux dans une vue de pile et définissez correctement la position de la vue de pile en utilisant les contraintes appropriées.

Sélectionnez la vue de la pile et dans Inspecteur d'attributs , recherchez la propriété nommée Distribution et dans le menu déroulant à côté, sélectionnez Remplir proportionnellement .

Pour refléter vos modifications dans le générateur d'interface utilisateur, sélectionnez la vue de largeur personnalisée et accédez à Inspecteur de taille , descendez en bas de la liste et vous trouverez une propriété appelée Taille intrinsèque , changez sa valeur en Placeholder , et dans le menu déroulant width , sélectionnez 1 .

Il y a peut-être un meilleur moyen d'y parvenir, mais c'est celui que j'ai trouvé pour l'instant et j'aimerais en trouver un meilleur.

2
Moe 19 août 2017 à 08:14