現時点では、[aString sizeWithFont:constrainedToSize:lineBreakMode:] を使用してラベルのサイズを正しく設定していますが、デバイスに回転を導入し、柔軟な幅と高さを使用すると、UILabel が幅方向に引き伸ばされます (設定がメインビュー)が、余分なスペースを補うために高さ方向に収縮することはありません.
私が尋ねた別の質問では、使用するように言われましたが、インターネット上でこれを適切に使用する方法を教えてくれる有用なリソースが見つかりませんsizeToFit
。sizeThatFits:
一言で言えば、私はこのような構造を持っているとしましょう:
UIView *innerView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, self.view.frame.size.width-20, 0)];
[innerView setAutoresizingMask:*flexible width and height*]
[innerView setBackgroundColor:[UIColor redColor]];
[self.view addSubview:innerView];
UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, innerView.frame.size.width-20, 0)];
[myLabel setAutoresizingMask:*flexible width and height*]
[myLabel setBackgroundColor:[UIColor blueColor]];
[myLabel setNumberOfLines:0];
[myLabel setLineBreakMode:UILineBreakModeWordWrap];
[innerView addSubview:myLabel];
これは単純化されたバージョンです (また、免責事項として、これは私の実際のコードではありません。これらの要素がリークし、他のすべてのものがあることを認識しています...これは単なる例であるため、構造を確認できます)。
基本的に私はその2つの要素を持っています。回転すると、両方とも新しいビュー サイズに合わせて伸縮します。私が必要としているのは、コンテンツに動的に合わせて高さを増減する方法です。[aString sizeWithFont...]
静的のみです。では、これを動的に使用sizeToFit
または作成するにはどうすればよいでしょうか。sizeThatFits
ありがとうございました。
トム