Ios initWithStyle:reuseIdentifier上的UITableViewCell宽度:
我创建了一个自定义UITableViewCell,其中包含2个标签。一个应该有固定的宽度,而另一个应该向右扩展,只要有空间 我创建的UILabel如下所示: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
- (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只创建了一个单元格,而没有将其添加到表视图中,因此,它不能说它有多大的宽度。稍后,当这个单元被重用时,您可以找到单元的宽度。不幸的是,我不知道如何在创建时找出单元格的宽度。