2012-01-21 86 views
0

我創建了一個包含2個標籤的自定義UITableViewCell。一個人應該有一個固定的寬度,而另一個應該擴展到右邊,只要有空間。initWithStyle上的UITableViewCell寬度:reuseIdentifier:

我創建UILabels是這樣的:

- (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; 
} 

的問題是,在這一點上,self.frame.size.width,總是返回320.0,所以UILabels不正確大小。我怎樣才能克服這個問題?

+0

嘗試self.contentview.frame.size..width – Shubhank

+0

這是因爲cellForRowAtIndexPath只是創建一個單元格,而沒有將其添加到表視圖,因此,它不能說,它會有多寬。之後,當這個單元格被重用時,你可以找出單元格的寬度。不幸的是,我不知道如何在創建時找出單元格的寬度。 – anticyclope

回答

1

將第二個標籤的autoresizingMask設置爲UIViewAutoresizingFlexibleWidth

如果您的需求比autoresizingMask更復雜可以表示您需要實施您自己的layoutSubviews

相關問題