2011-12-19 16 views
0

マルチラインの高さを知ることができると知りたかったですUILabel?私はメッセージングアプリケーションを開発しており、iPhoneのメッセージングアプリケーションのようなものを実現したいと考えていました。UILabelの高さの計算は?

答えて

1

あなたはおそらく-[UILabel sizeThatFits:]方法をしたいlabel.frame.size.height

+0

ありがとう! –

+1

@ TusharChutaniこの質問があなたが探していたものであれば、それを受け入れたものとしてマークしてください(左の小さなタグ) – MByD

0

あなたは

[label sizeToFit]; 

を呼び出した場合、それはすべてのコンテンツを保持するために必要な最小サイズにUILabelのサイズを変更します。次に、label.frame.size.heightを実行して、ラベル内のテキストの高さを取得します。

+0

OPは高さを取得するために探していますが、コンテンツのサイズを変更しません。 – barfoon

+0

私はあなたの前提に同意しません。これは良い答えです。 – amattn

+0

ラベルの高さ(ラベルを作成するときに指定した可能性が最も高い)ではなく、ラベル内のテキストの高さを高くしたいと思っていました。 – Casey

1

でプロパティを取得することができます。ここにあなたがしていることがあります。あなたのUILabelが変数myLabelに入っていて、その幅をすでに設定しているとしましょう。

myLabel.text = @"This is my very long message which will probably need multiple lines to be displayed because it is very long."; 

CGRect bounds = myLabel.bounds; 

// Create a size that is the label's current width, and very very tall. 
CGSize prototypeSize = CGSizeMake(bounds.size.width, MAXFLOAT); 

// Ask myLabel how big it would be if it had to fit in prototypeSize. 
// It will figure out where it would put line breaks in the text to 
// fit prototypeSize.width. 
CGSize fittedSize = [myLabel sizeThatFits:prototypeSize]; 

// Now update myLabel.bounds using the fitted height and its existing width. 
myLabel.bounds = (CGRect){ bounds.origin, CGSizeMake(bounds.size.width, fittedSize.height) }; 
関連する問題