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)
私が抱えている問題は、幅が動的に調整されていないかのように、ラベルがまだすべて左に離れすぎているように見え、右にかなりのギャップが残っていることです?
それをどのように修正できるかについての考えは大歓迎です。
どうもありがとう。