我创建了一个包含2个标签的自定义UITableViewCell。一个应该有一个固定的宽度,而另一个应该向右扩展,只要有空间。
我正在创建像这样的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,因此UILabels的大小不正确。我怎样才能克服这个问题?
答案 0 :(得分:1)
将第二个标签的autoresizingMask
设置为UIViewAutoresizingFlexibleWidth
。
如果您的需求变得比autoresizingMask
更复杂,则表示您需要实施自己的layoutSubviews
。