Ios initWithStyle:reuseIdentifier上的UITableViewCell宽度:

Ios initWithStyle:reuseIdentifier上的UITableViewCell宽度:,ios,uitableview,Ios,Uitableview,我创建了一个自定义UITableViewCell,其中包含2个标签。一个应该有固定的宽度,而另一个应该向右扩展,只要有空间 我创建的UILabel如下所示: - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; i

我创建了一个自定义UITableViewCell,其中包含2个标签。一个应该有固定的宽度,而另一个应该向右扩展,只要有空间

我创建的UILabel如下所示:

- (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,因此UILabel的大小不正确。如何解决此问题?

将第二个标签的
自动ResizingMask
设置为
UIViewAutoresizingFlexibleWidth


如果您的需求变得比
autoresizingMask
所能表示的更复杂,那么您需要实现自己的
布局子视图

试试self.contentview.frame.size..width这是因为CellForRowIndexPath只创建了一个单元格,而没有将其添加到表视图中,因此,它不能说它有多大的宽度。稍后,当这个单元被重用时,您可以找到单元的宽度。不幸的是,我不知道如何在创建时找出单元格的宽度。