2016-03-29 18 views
0

私はUIImageViewUILabelを配置するカスタムビューを持っています。ラベルのテキストは任意のサイズで、動的に設定できるので、ラベルのnumOfLinesを0に設定しました。UILabelの高さをテキストの高さに合わせることができません

さらに、Autolayoutを使用しています。画像ビューは、ラベルの右側に配置するアイコンです。アイコンとテキストの両方の上端(ラベルの上部ではなく)が必要です。私はラベルとそのテキスト内のパディングを取り除くためにいくつかの方法を試しましたが(sizeToFitsizeThatFits)、ラベルの高さがテキストの高さと正確に一致する必要があります。アイコン付きテキスト...どのように私はそれを達成することができますか?

+0

http://stackoverflow.com/questions/25180443/adjust-uilabel-heightます〜テキスト – Ujjwal

答えて

0

この場合、dynamic heightをラベルに設定する場合は、最初にそのラベルのstoryboard/xibのprefferedmaxwidthオプションをチェックしてから、uilabel制約を設定する必要があります。

ラベルに制約を設定するためのシーケンス: - 1.トップ 2.現在のラベルの高さが必要以上に異なっている場合、これは警告を発生させます

末尾 3.をリードします。 この場合、このラベルの[フレームの更新]オプションを選択します。

は現在、下限制約が設定されています。

sizetofitメソッドを呼び出す必要はありません。自動レイアウトは、次のコードを使用して、ラベルの高さ制約を変更することにより、ラベルの高さを変更することができます

0

のための高さを計算

CGSize size = [@"your text" boundingRectWithSize:CGSizeMake(label.bounds.size.width, 10000) options:(NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin) attributes:@{NSFontAttributeName : @"FontName"} context:nil].size; 

labelHeightConstraint = size.height; 
関連する問題