2017-08-05 10 views
1

ラベル(UILabel)の横にアイコン(UIImage)を配置するには、水平方向のスタックビューを使用します。アイコンが常にラベルのテキストと同じ高さになるようにします。ユーザーがシステムのフォントサイズを大きくすると、同じ高さになるようにアイコンを調整します。UILmageをAutoLayoutを使ってUILabelの本来の高さと同じ高さにするにはどうすればよいですか?

アイコンとラベルのあるスタックビューは、UITableViewCellにあります。

どうすればいいですか?デフォルトに設定さ

  • UITableViewCellの高さ:

    これまでのところ私は、次のオートレイアウトの設定を持っています。

  • スタックビューは、UITableViewCellのサイズに制限されています。
  • スタックビューの配置と分布を塗りつぶしに設定します。
  • UILabelコンテンツハグ優先順位250と圧縮抵抗優先順位750
  • UIImageViewコンテンツハグ優先順位250と圧縮抵抗優先順位749
  • UIImageViewアスペクト比1:1。
  • UIImage UILabelと同じ高さを表示します。

私が得るすべてはこれです:私は多くの異なる組み合わせを試してみました言うまでもなく enter image description here

が、これは私が得る最善の方法です。 UIImageView(Facebookロゴ)を 'Some text'と同じ高さにします。

が、私はこれをしたい: enter image description here

+0

おそらくUIImageViewとUILabelは、ラベルがStackView(セルに等しい)と同じ高さであれば、実際には同じ高さになります。 UILabelはテキストを垂直方向に配置します。 – zero

+0

ええと、UILabelは、UIImageViewと同じ高さに伸びてしまいます。私はそれを示すためにUILabelの灰色の背景を着色しました。私はUILabelがその本質的な高さにとどまることを望みます。 – Dan

+0

あなたはそれをプログラム的に行う必要があります。ここには、表示するテキストとそれを表示する幅に応じて 'UILabel'の高さを知る方法に関する記事があります:https://stackoverflow.com/questions/27374612/how -do-i-calculate-the-uilabel-height-dynamically – zero

答えて

2

画像が大きくなるにつれてあなたのラベルは成長していますが、逆の動作をします。コンテンツの圧縮抵抗の優先順位とコンテンツのハギングの優先順位を制御できます。ラベルの垂直方向のコンテンツハギングの優先順位を必須に設定する必要があります。これは、ラベルが自然な高さよりも大きくなっていることを許可しません。画像の縦方向のコンテンツ圧縮抵抗の優先順位と、おそらく水平のペンダントを低く設定します。これにより、画像がラベルの高さに縮小されます。

+1

これはうまくいった。私はラベルの垂直方向の圧縮抵抗の優先順位を1000に設定し、画像の圧縮抵抗の優先順位を250に設定しました。ありがとう! – Dan

関連する問題