7

を含むプロトタイプセルが内部にUITableViewありますUILabel。ラベルのテキストのサイズに応じて、ラベル (およびセル) のサイズを動的に変更したいと考えています。

次のようにプロトタイプ セルを作成しますcellForRowAtIndexPath

static NSString *CellIdentifier = @"ProgramDetailCell";
ProgramDetailCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell.descriptionLabel.text = self.program.subtitle;
return cell;

次に、ProgramDetailCell次の実装があります。

@implementation ProgramDetailCell
- (void)layoutSubviews {
    [super layoutSubviews];
    [self.descriptionLabel sizeToFit];
}
@end

セルが初めて表示されるときにlayoutSubviewsが呼び出されますが、descriptionLabelサイズは変更されません。ただし、テーブルを下にスクロールしてもう一度戻ると、「再利用」セルが表示され、ラベルのサイズが正しく変更されます。

セルが最初に表示されたときに機能しないのはなぜですか?それを修正するにはどうすればよいですか?

前もって感謝します!

4

9 に答える 9

9

xib で、最初のタブに移動し、 Interface Builder Document の下で、 use Auto Layout ボックスのチェックを外します。

于 2014-04-01T10:08:50.910 に答える