iOS 8 xib拉的 UILabel 能自适应么?怎么自适应

 我来答
du...s@163.com
2017-05-31 · TA获得超过201个赞
知道小有建树答主
回答量:318
采纳率:66%
帮助的人:63.2万
展开全部
  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:需要检查其执行效率。
v
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
来三丿4
2017-05-29 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:44.8万
展开全部
-(CGFloat)heightForString:(NSString *)string fontSize:(float)fontSize andWidth:(float)width
{
if (string==nil) {
return 0;
}

float dev=[[[UIDevice currentDevice]systemVersion]floatValue];
if (dev>=7.0) {
if ((NSNull *)string == [NSNull null]) {
return 0;
}
if (string!=nil && string.length>1) {
UIFont * tfont = [UIFont systemFontOfSize:fontSize];
CGSize size = CGSizeMake(width,CGFLOAT_MAX);
NSDictionary * tdic = [NSDictionary dictionaryWithObjectsAndKeys:tfont,NSFontAttributeName,nil];
CGSize actualsize =[string boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesFontLeading attributes:tdic context:nil].size;
return actualsize.height;
}
return 0;

}
else {
if (string!=nil && string.length>1) {
CGSize sizeToFit = [string sizeWithFont:[UIFont systemFontOfSize:fontSize] constrainedToSize:CGSizeMake(width, CGFLOAT_MAX) lineBreakMode:NSLineBreakByWordWrapping];//此处的换行类型(lineBreakMode)可根据自己的实际情况进行设置
return sizeToFit.height;
}
return 0;
}

}

上面的代码就可以。还需设置下label的 numberofline= 0 breakMode 以及 重新设置label.frame 如果在tableview上要重新设置cell的高度.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式