2017-08-20 4 views
1

CardTableViewを使用しようとしていて、APIコールからカードをレンダリングすることができます。しかし、私は複数のUILabelsを読み込み、カードの内容領域内でUIStackViewsを使ってレイアウトしようとしています。ツールバーと下部バーには既にアイコンがあり、適切に使用されます。私はstackViewを埋め込むと、この写真のようにtranslatesAutoresizingMaskIntoConstraints = falseカードが、正しく間隔を置いて配置されている設定いけないとき は: Correct spacing of cards, no stack views renderingStackViewをMaterialSwiftカードのコンテンツに埋め込む

しかし目に見える私のラベルのどれもありません。次の写真は、私がtranslatesAutoresizingMaskIntoConstraints = falseと設定すると、ラベルが表示されますが、カードの間隔はすべて壊れていることを示しています。ここで stack views render, but spacing is off

コンテンツを調製するための私の方法です:

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 
} 

そして、これはカード自体を製造するための私のコードです:

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

私は間隔と競合しているものをわからないですし、ネストされたStackViewを使用したカードのレイアウト。

+0

高さをUIStackViewに設定できますか?コンテンツの高さは動的または固定ですが、必ずしもAutoLayoutを使用している必要はありません。 – CosmicMind

+0

@CosmicMindは、高さを追加することで、translatesAutoresizingMaskIntoConstraints = false ...と設定しました。あなたはいつもここで質問に答えるのがとても速いです! – kinghenry14

+0

ありがとうございます:)私は答えとしてこれを投稿して、他の人がそれを見つけることができるようにします。あなたが自由であるときは、正しい印を付けてください。 – CosmicMind

答えて

1

UIStackViewに高さの値を設定してください:)

+0

私は前に私のコメントで間違いを犯しましたが、編集できません。私は '.translatesAutoresizingMaskIntoConstraints = true'をfalseに設定しませんでした! – kinghenry14

+0

これを修正する方法がわかりません。しかし、このコメントをここに残しても良いです:) – CosmicMind

関連する問題