2017-05-11 21 views
1

私はプログラム的NSLayoutConstraints、主にconstraintsWithVisualFormatを使用するように、と私はこのレイアウトでビューを再作成しようとしていますので、実行する方法を学んでいます:iOS:constraintsWithVisualFormatを使用して余白を設定するにはどうすればよいですか?

enter image description here

enter image description here

このビューは3つのサブビューで構成されています、ビューの左側から15px離れた35x35px円アイコン、ビューの右側から15px離れたチェックマークアイコン、中央のラベル、円のアイコンから9px離れたところにあるチェックマーク、およびチェックマークが表示されます。

私はこの試みた:アイコンが右の場所にあり、どこそれはあまりにもすべきラベルが始まるが、私は私が欲しいのチェックマークを配置することはできません...それは実際に9px右始まり

[view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-15-[icon(==35)]-9-[label]-9-[checkmark(==24)]-15-|" 
                  options:0 
                  metrics:nil 
                   views:NSDictionaryOfVariableBindings(icon, label, checkmark)]]; 

を2番目の状況(ラベルが長い)では、チェックマークがビューの外側にあります。

私は間違っていますか?ご協力いただきありがとうございます。

答えて

1

制約を分析すると、制約にあいまいさがあります。

H:|-15-[icon(==35)]-9-[label]-9-[checkmark(==24)]-15-| 

チェックマークは右端から15ピクセル離れていますが、ラベルには9ピクセル右にもなります。アイコン、ラベルが全幅のわずか20%を占める場合、チェックマークはラベルから右マージンから15ピクセル離れたスペースの残りを占有します。それはチェックマークを拡大させるでしょう。制約が正しい場合、UIImageViewは組み込みのcontentSizeを使用できます。あなたはこの問題を解決する方法は、これが今のチェックマークは、常に右から15個のピクセルですが、その後のラベルと、チェックマークの間のスペースが9つのピクセルよりも大きいことを意味

H:|-15-[icon(==35)]-9-[label]-(>=9)-[checkmark(==24)]-15-| 

、このような不等式制約をしています。したがって、チェックマークは常に右から15ピクセルで固定されますが、ラベルとチェックマークの間のスペースは異なります。

+0

今すぐ取得します。どうもありがとうございました。 – Someday

関連する問題