使UILabel 的frame随文字多少而自适应大小

NSString*strTat=[NSStringstringWithString:data];intitat=[strTatlength]/18+1;UILabel*t... NSString* strTat = [NSStringstringWithString:data]; int itat = [strTat length]/18 + 1;UILabel * tationDescriptionInfo = [[UILabel alloc]initWithFrame:CGRectMake(70, 22*(iadd+iprice+iattri+1)+14*(ipro+1), 240, 14*itat)]; [tationDescriptionInfo setNumberOfLines:itat]; 展开
 我来答
匿名用户
2013-08-28
展开全部
UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];// 这个大小可以随便写,反正后面会改变他label.backgroundColor = [UIColor redColor];label.font = [UIFont systemFontOfSize:40];//这个也随便设, 任何字体都会自动计算出 合适的大小label.text = @"1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz";//label.text = @"1234";label.numberOfLines = 0;//这个一定要设成0CGSize size = [content sizeWithFont:[UIFont systemFontOfSize:14] c*****trainedToSize:CGSizeMake(200, 1000) lineBreakMode:UILineBreakModeWordWrap];CGRect rct = label.frame;rct.size = ssize;label.frame = rct;label.center = CGPointMake(160, 160);
fxrxwh
高粉答主

推荐于2018-05-04 · 说的都是干货,快来关注
知道顶级答主
回答量:7.1万
采纳率:89%
帮助的人:2.4亿
展开全部
  UILabel自适应里面的文字,自动调整宽度和高度:
  UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];//必须是这组值,这个frame是初设的,没关系,后面还会重新设置其size。
  [label setNumberOfLines:0]; //必须是这组值
  NSString *s = @"这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。";
  UIFont *font = [UIFont fontWithName:@"Arial" size:12];
  CGSize size = CGSizeMake(320,2000);
  CGSize labelsize = [s sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];
  label.frame = CGRectMake(0.0, 0.0, labelsize.width, labelsize.height );
  label.backgroundColor = [UIColor purpleColor];
  label.textColor = [UIColor blackColor];
  label.text = s;
  label.font = font;
  ....//using the label. Such as add it to the super view.
  [label release];//release the correct object.
  下面代码获取NSString写进单行的宽度与高度:
  CGSize singleLineStringSize = [s sizeWithFont:font];
  ps:需要检查其执行效率。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
东吴小肥羊
2015-08-22 · TA获得超过2万个赞
知道大有可为答主
回答量:4967
采纳率:87%
帮助的人:463万
展开全部
UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
这个大小可以随便写,反正后面会改变他
label.backgroundColor = [UIColor redColor];label.font = [UIFont systemFontOfSize:40];
这个可以随便设, 任何字体都会自动计算出 合适的大小label.text =
@"1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz";//label.text = @"1234";label.numberOfLines = 0;
这个一定要设成:0CGSize size = [content sizeWithFont:[UIFont systemFontOfSize:14] c*****trainedToSize:CGSizeMake(200, 1000) lineBreakMode:UILineBreakModeWordWrap];CGRect rct = label.frame;rct.size = ssize;label.frame = rct;label.center = CGPointMake(160, 160);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式