UILable控件自适应高度方法整理小记

UILable

1)换行处理

 

label.numberOfLines = 0;

 

   1》 若是从http上请求的换行失败可以用\n处理

    2》多行文本自适应

//返回固定宽度和固定字体大小内的高度
- (CGFloat)heightWithFont:(UIFont*)font withLineWidth:(NSInteger)lineWidth
{
    CGSize size = [self sizeWithFont:font
                   constrainedToSize:CGSizeMake(lineWidth, CGFLOAT_MAX)
                       lineBreakMode:NSLineBreakByTruncatingTail];
	return size.height;
	
}
//返回固定宽度和固定字体大小内的宽度
- (CGFloat)widthWithFont:(UIFont *)font withLineHeight:(NSInteger)lineHieght
{
    CGSize size = [self sizeWithFont:font constrainedToSize:CGSizeMake(CGFLOAT_MAX, lineHieght) lineBreakMode:NSLineBreakByTruncatingTail];
	return size.width;
}
-(void) text
{
    NSString *displayStr = @"这是要在lable上显示的字符串一呀咿呀呦";
    //这是设置lable字体的大小
    UIFont *strfontSize = [UIFont systemFontOfSize:16.0f];
    //withLineWidth 设置显示的宽度
    CGFloat height = [self heightWithFont:strfontSize withLineWidth:130];
    //withLineHeight 设置显示的高度
    CGFloat width = [self widthWithFont:strfontSize withLineHeight:60];
}
/*
 CGFLOAT_MAX(显示内容的最大限度
 size返回的height,weight为折行后需要的宽度和高度
 NSLineBreakMode介绍:
 NSLineBreakByWordWrapping = 0,     //	 以单词为单位换行,以单词为单位截断,默认
 NSLineBreakByCharWrapping,		// 以字符为单位换行,以字符为单位截断
 NSLineBreakByClipping,		// 以单词为单位换行。以字符为单位截断
 NSLineBreakByTruncatingHead,	// 在截断行头: "...wxyz"
 NSLineBreakByTruncatingTail,	// 末尾显示...: "abcd..."
 NSLineBreakByTruncatingMiddle  // 中间显示...:  "ab...yz"
 */

    3》单行根据字体大小获得高度宽度

 

 

UILabel *lab=[[UILabel alloc] init];
    UIFont* theFont = [UIFont systemFontOfSize:14];
    [lab setFont:theFont];
    [lab setText:@"显示的text"];
    [lab sizeToFit];// 显示文本需要的长度和宽度
    int height=lab.frame.size.height;
    int with=lab.frame.size.width;


   4》单行根据字数自动调整字体大小

 

 

[lab setAdjustsFontSizeToFitWidth:YES];

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值