0

希望你做得很好。

我正在设置标签并调整其框架..

UILabel *mylabel=[[UILabel alloc]init];
    mylabel.Text=@"This is my label";
    mylabel.frame=CGRectMake(10,10,200,21);

现在,如果我像这样从我设置的任何字符串中更改标签的文本

NSString *mystring=@"This is my first string that is to be assigned to my label dynamilcally";
mylabel.Text=mystring;
mylabel.frame.size.width=mystring.length;

但什么也没发生。标签的宽度保持为 200,正如我在初始化时设置的那样。

这还需要获取mystring宽度。如何得到它?

感谢期待对我的帮助。

4

1 回答 1

1

[myLabel sizeToFit]如果你需要它在一条线上。对于多行标签,您可以使用NSString'sizeWithFont:constrainedToSize:lineBreakMode:函数来获取字符串的大小并使用它来修改标签的高度和宽度。

例如,为您提供固定宽度为 200px 的多行标签的高度的代码:

CGSize textSize = { 
    200.0,   // limit width
    20000.0  // and height of text area
}; 

CGSize size = [descriptionString sizeWithFont:[UIFont systemFontOfSize:17.0] constrainedToSize:textSize lineBreakMode:UILineBreakModeWordWrap];
CGFloat height = size.height < 36? 36: size.height; // lower bound for height

CGRect labelFrame = [myLabel frame];
labelFrame.size.height = height;
[myLabel setFrame:labelFrame];
[myLabel setText:descriptionString];
于 2012-11-09T10:50:52.437 回答