3

フレームの高さを十分に高くすると、適切にワードラップされる UILabel があります。ただし、適切な高さを動的に見つけたいのですが、sizeWithFontメソッドはこれを行っていません。そのメソッドは、ラベルに 1 行を作成するだけです。

CGSize subtitleSize=[subtitle sizeWithFont:subtitleFont forWidth:maxwidth lineBreakMode:UILineBreakModeWordWrap];

次に、この関数と同じテキスト、フォント、サイズを使用します。

        UILabel *subLabel=[[[UILabel alloc] initWithFrame:CGRectMake(0, 0, maxwidth, subtitleSize.height)]autorelease];
        subLabel.font=subtitleFont;
        subLabel.text=subtitle;
        subLabel.numberOfLines=0;
        subLabel.lineBreakMode=UILineBreakModeWordWrap;

それはすべて機能し、私が使用するサイズを私に与えるはずです。ただし、サイズの高さは常にラベルの 1 行です。

4

3 に答える 3

7

あなたはこれを使うかもしれません

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

ConstrainedToSize の最大サイズ

CGSize size = CGSizeMake(maxwidth, CGFLOAT_MAX);
于 2012-04-19T08:33:25.940 に答える
1

手動で 1 つ大きなフォント サイズを指定できます。

于 2013-08-23T12:36:18.793 に答える
1

まず、subtitle変数のテキストが期待どおりに長いかどうかを確認します。次に、この方法を使用してテキスト サイズを計算してみてください。

CGSize subtitleSize = [subtitle sizeWithFont:subtitleFont constrainedToSize:CGSizeMake(maxwidth, 1000000) lineBreakMode:UILineBreakModeWordWrap];

このコードでは、テキスト サイズを最大幅と「無限」の高さに計算しています。

それが役に立てば幸い。

于 2012-04-19T08:35:37.090 に答える