0

3 つのラベルと画像をレイアウトしようとしているコレクション ビュー セルがあります。垂直レイアウトは問題なく動作しているように見えますが、水平レイアウトを許容できる状態にすることができないようです。ラベルが思いどおりに機能しないようです。

基本的に、垂直方向の寸法は固定されていますが、画面の幅に基づいてセルの水平方向のサイズを変更していますが、通常は約 320 です。画像を固定位置にしたいのですが、UILabels が画像の右側に残りのスペース。

予想されるレイアウトの下の写真を含めました。

ここに画像の説明を入力

垂直レイアウトの場合、ラベルは l1 から l3 で、画像は i1 です。

画像を上から 20px に制限するには:

contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-20-[i1(42)]", options: nil, metrics: nil, views: dictionaryOfViews))

高さ 134 の固定セルでラベルを垂直方向に制限するには、次のようにします。

contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-20-[l1(21)][l2(21)]-10-[l3(42)]-20-|", options: nil, metrics: nil, views: dictionaryOfViews))

次に、ラベルが水平方向に次のようになることを期待していました。

contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-20-[i1(42)]", options: nil, metrics: nil, views: dictionaryOfViews))
contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-82-[l1]-20-|", options: nil, metrics: nil, views: dictionaryOfViews))
contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-82-[l2]-20-|", options: nil, metrics: nil, views: dictionaryOfViews))
contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-82-[l3]-20-|", options: nil, metrics: nil, views: dictionaryOfViews))

これはほとんど機能します。複数行のラベルも動作させるには、次のように設定する必要がありました。

descriptionLabel.setContentCompressionResistancePriority(0, forAxis: .Horizontal)

私が抱えている問題は、幅が動的に調整されていないかのように、ラベルがまだすべて左に離れすぎているように見え、右にかなりのギャップが残っていることです?

それをどのように修正できるかについての考えは大歓迎です。

どうもありがとう。

4

1 に答える 1

0

ここでちょっと考えて... ラベルの左側を画像の右側に設定しようとしましたか?

contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[i1]-20-[l1]-20-|", options: nil, metrics: nil, views: dictionaryOfViews))
contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[i1]-20-[l2]-20-|", options: nil, metrics: nil, views: dictionaryOfViews))
contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[i1]-20-[l3]-20-|", options: nil, metrics: nil, views: dictionaryOfViews))
于 2015-09-03T11:39:08.697 に答える