0

以下のコードで「[aLabelsizeToFit]」行が必要な理由を強調できる人は誰でも、ここから抜粋します。

つまり、作成されたCGRectは、テキストのフォントサイズに基づいて既にサイズ設定されているのに、なぜsizeToFitが必要になるのでしょうか。それとも、正しいCGRectサイズを計算しているときに、事前に合意されたフォント(システムフォント)をまだUILabelに設定していなかったためですか?(したがって、フォントを設定する代わりに、実質的にsizeToFitと呼ばれます)

- (CGRect)RAD_frameForCellLabelWithSystemFontOfSize:(CGFloat)size {
    CGFloat width = [UIScreen mainScreen].bounds.size.width - 50;
    CGFloat height = [self RAD_textHeightForSystemFontOfSize:size] + 10.0;
    return CGRectMake(10.0f, 10.0f, width, height);
}

- (void)RAD_resizeLabel:(UILabel *)aLabel WithSystemFontOfSize:(CGFloat)size {
    aLabel.frame = [self RAD_frameForCellLabelWithSystemFontOfSize:size];
    aLabel.text = self;
    [aLabel sizeToFit];    // WHY IS THIS REQUIRED
}
4

1 に答える 1

2

ドキュメントから:

現在のビューのサイズを変更して、最も適切なスペースを使用する場合は、このメソッドを呼び出します。特定の UIKit ビューは、独自の内部ニーズに応じてサイズを変更します。場合によっては、ビューにスーパービューがない場合、画面の境界に合わせてサイズが変更されることがあります。したがって、特定のビューのサイズを親ビューに合わせたい場合は、このメソッドを呼び出す前に親ビューに追加する必要があります。

あなたのケースに適したものを選択してください。

于 2011-03-10T02:04:38.253 に答える