2017-08-20 5 views
1

Je tente d'utiliser CardTableView et je suis en mesure de générer des cartes à partir de mon appel d'API. Cependant, j'essaye de charger plusieurs UILabels et de les disposer en utilisant UIStackViews dans la zone de contenu de la carte. La barre d'outils et la barre inférieure ont déjà des icônes et seront utilisées de manière appropriée. Quand je emprisonnant les stackView et DonT mis translatesAutoresizingMaskIntoConstraints = false les cartes sont correctement espacées, comme le montre cette image: Correct spacing of cards, no stack views renderingIncorporation de StackView au contenu de la carte MaterialSwift

Cependant, il est pas de mes étiquettes visibles. L'image suivante montre que lorsque je mets translatesAutoresizingMaskIntoConstraints = false les étiquettes apparaissent, mais l'espacement de la carte est tout ruiné. stack views render, but spacing is off

Voici ma méthode pour la préparation du contenu:

private func prepareCardContent() { 
    contentLabelStackView = UIStackView() 
    contentLabelStackView.axis = UILayoutConstraintAxis.vertical 
    contentLabelStackView.distribution = UIStackViewDistribution.equalSpacing 
    contentLabelStackView.alignment = UIStackViewAlignment.leading 
    contentLabelStackView.spacing = 0 
    contentLabelStackView.addArrangedSubview(invitedLabel) 
    contentLabelStackView.addArrangedSubview(teeUpTitle) 
    contentLabelStackView.translatesAutoresizingMaskIntoConstraints = false 
} 

Et voici mon code pour la préparation de la carte elle-même:

private func preparePresenterCard() { 
    card.toolbar = toolbar 
    card.contentView = contentLabelStackView 
    card.contentViewEdgeInsetsPreset = .vertically5 
    card.bottomBar = bottomBar 
    card.depthPreset = .depth3 
    contentView.addSubview(card) 
} 

Je ne suis pas sûr ce qui est en conflit avec l'espacement et disposition des cartes en utilisant un StackView imbriqué.

+0

Pouvez-vous essayer de définir une hauteur pour l'UIStackView? La hauteur du contenu est dynamique ou fixe, mais pas nécessairement lors de l'utilisation de AutoLayout. – CosmicMind

+0

@CosmicMind ajouter une hauteur travaillée en conjonction avec le paramètre translateAutoresizingMaskIntoConstraints = false ... merci! vous êtes toujours très rapide pour répondre aux questions ici! – kinghenry14

+0

Merci :) Je vais poster ceci comme réponse pour que d'autres puissent le trouver. Lorsque vous êtes libre, veuillez le marquer correctement. – CosmicMind

Répondre

1

Définir une valeur de hauteur pour l'UIStackView :)

+0

J'ai fait une erreur dans mon commentaire avant mais je ne peux pas éditer ... J'ai mis '.translatesAutoresizingMaskIntoConstraints = true' pas faux! – kinghenry14

+0

Vous ne savez pas comment résoudre ce problème. Laisser ce commentaire ici est bien :) – CosmicMind