7

私は を持っており、固定幅と可変高さがではなくUILabelに依存するように設定したいと思います。textsuperView

つまり、text「Hello World」の場合です。その場合、ラベルは...

------------------------
|Hello World.          |
------------------------

また、text「これは数行にわたる非常に長いテキストです」の場合。するとラベルは…

------------------------
|This is some very long|
|text that goes over   |
|several lines.        |
------------------------

を使用して固定幅を既に設定し、 0NSLayoutConstraintに設定numberOfLinesしましたが、1 行の高さを維持し、テキストを省略記号で連結します。

「contentResistance」というものがあることは知っていますが、名前や使い方がわかりません。

これは可能ですか?

4

2 に答える 2

10

preferredMaxLayoutWidthラベルのを固定幅に設定する必要があります。あなたが幅に制限しているので、なぜそれがそれ自体でこれを理解できないのか分かりませんが、あなたはそこに行きます。

自動レイアウトの世界で固定サイズを設定する必要があると感じた場合(そうすべきです!)、viewDidLayoutSubviewsで、レイアウトが発生した後のラベルの幅から値を設定できます。この場合、レイアウトを無効にする無限ループに入らないように注意してください。

于 2013-03-07T16:28:05.963 に答える
-2

あなたに役立つかもしれないこのコードを試してください>

   label.text=@"haiiiiiiiii";

    UIFont *cellFont=[UIFont fontWithName:@"Helvetica" size:12.0];
    CGSize constraintSize=CGSizeMake(250,MAXFLOAT);
    CGSize txtViewSize=[label.text sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];

yourlabelname.numberOfLines=0;

CGRect frame=yourlabelname.frame;

frame.size.width=250;

frame.size.height=txtViewSize.height;

yourlabelname.frame=frame;

yourlabelname.text=cellText;
于 2013-03-07T16:28:33.880 に答える