动态增加uilabel的宽度

时间:2010-10-18 08:34:53

标签: iphone

我想根据要显示的文本长度动态地为标签指定宽度。标签是在uiview上自行添加的。我正在使用以下代码,但我仍然得到更短宽度的标签。

- (id)initWithFrame:(CGRect)frame OrangeText:(NSString*)orange WhiteText:(NSString*)white {
if ((self = [super initWithFrame:frame])) {
    CGSize textSize = [orange sizeWithFont:[UIFont systemFontOfSize:14]];
    OrangeLabel = [[UILabel alloc] initWithFrame:CGRectMake(30, 0, textSize.width, textSize.height+2)];
    OrangeLabel.text = orange;
    OrangeLabel.backgroundColor = [UIColor clearColor];
    OrangeLabel.textColor = [UIColor orangeColor];
    [self addSubview:OrangeLabel];

    WhiteLabel = [[UILabel alloc] init];
    CGSize whiteTextSize = [white sizeWithFont:[UIFont systemFontOfSize:14]];
    WhiteLabel.frame = CGRectMake(OrangeLabel.frame.size.width+35, 5, whiteTextSize.width, whiteTextSize.height);
    WhiteLabel.text = white;
    WhiteLabel.backgroundColor = [UIColor clearColor];
    WhiteLabel.textColor = [UIColor whiteColor];
    [self addSubview:WhiteLabel];        // Initialization code
}
return self;

}

1 个答案:

答案 0 :(得分:6)

我认为你正在寻找这种方法

[myLabel sizeToFit];

这应该调整标签框的大小以适应其内容。