2012-01-21 10 views
0

2つのラベルを含むカスタムUITableViewCellを作成しました。 1つは幅が固定され、もう1つはスペースがある限り、右側に拡張する必要があります。私はこのようなUILabelsを作成していinitWithStyleのUITableViewCellの幅:reuseIdentifier:

:問題はself.frame.size.width、その時点で、ということである

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     // Initialization code 
     codeLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 60, 20)]; 
     [self.contentView addSubview:codeLabel]; 
     [codeLabel release]; 

     nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(76, 4, self.frame.size.width - 100, 34)]; 
     [self.contentView addSubview:nameLabel]; 
     [nameLabel release]; 
    } 

    return self; 
} 

、常に320.0を返し、そうUILabelsは、適切なサイズではありません。どうすればこの問題を克服できますか?

+0

try self.contentview.frame.size..width – Shubhank

+0

これはcellForRowAtIndexPathがテーブルビューに追加せずにセルを作成するだけなので、どのような幅になるかはわかりません。後で、このセルを再利用するときに、セルの幅を見つけることができます。残念ながら、作成時にセルの幅を調べる方法はわかりません。 – anticyclope

答えて

1

2番目のラベルのautoresizingMaskUIViewAutoresizingFlexibleWidthに設定します。

あなたのニーズがautoresizingMaskより複雑になる場合は、自分で実装する必要がありますlayoutSubviews

関連する問題