2012-02-29 11 views
3

私はテキストデータを持つアプリを手に入れました。フレキシブルなUILabelの作成

TableViewユーザーは、1つのセルを選択し、相対テキストデータを含むUIViewControllerを表示します。しかし情報テキストは1行からNまでです。どのようにしてUILabelを作成できますか?テキストのサイズによってサイズが変わりますか?

答えて

2

もう1つの解決策は、sizeWithFontメソッドを使用してコード内でこれを行うことです。それが変化する高さだ場合、あなたは、標準のラベル幅と9999の高さで、ラベルの最大サイズを設定し、提案サイズは、あなたのテキストのためになるかどうか確認することができ、iOS: UILabel dynamic height using sizeWithFont:constrainedToSize:lineBreakMode: not working

: あなたはここでより多くの情報を見つけることができますあなたのラベルの最適な高さや幅を定義することができ、この1と

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode 

:NSStringのUIKitに追加であなたのラベルのフォント

2

ラベリングできる行数を指定するには、ラベルのnumberOfLinesプロパティを設定します。ゼロに設定すると、任意の数の行に折り返すことができます。このプロパティはペン先で設定できます。

ただし、すべての行を表示するのに十分な大きさのフレームを設定する必要があります。最も簡単な方法は、テキストを設定した後にsizeToFitメッセージを送信することです。それは、幅を維持する(私は思う)が、ラップ後にその行のすべてを表示するのに十分な高さに変更する。

テキストが画面に表示されない(またはラベルに使用可能なスペースに収まらない)テキストが多すぎる場合は、代わりにUITextViewを使用してください。 UITextViewは、自動的にスクロールすることができます。

+0

ラベルの幅を設定できますか?それから高さを取る? –

+0

[この質問と回答](http://stackoverflow.com/questions/406212/sizing-a-uilabel-to-fit) – ayoy

3

を使用するには、次の方法を見つけることができます。例えば、UILabelの最適な高さを取得するには、次の方法でUILabel上のカテゴリを作成することができます。その後

- (float)optimalHeight 
{ 
    return [self.text sizeWithFont:self.font constrainedToSize:CGSizeMake(self.frame.size.width, UINTMAX_MAX) lineBreakMode:self.lineBreakMode].height; 
} 

を、単にあなたのUILabelのフレームを変更することができます。ラベルの行数を0に設定することを忘れないでください。

関連する問題