UILabel自适应宽度

来源:互联网 发布:js中获取json对象的值 编辑:程序博客网 时间:2024/05/24 01:49

iOS 7.0之前的方法:

nameLabel = [[UILabelalloc]initWithFrame:CGRectZero];  //先随便设置一个Frame  因为后面要修改的

    [nameLabel setNumberOfLines:0];  //可自动换行  文字量一大  就需要换行了   

    nameLabel.textColor = [UIColorblackColor];

    nameLabel.text =@"西门吹雪";  //设置需要自适应的字体

    CGSize size = CGSizeMake(320,2000);   //写一个不可能超过的范围

    UIFont *font = [UIFontfontWithName:@"Arial" size:17];  //默认就是17  不写都可以

    CGSize labelsize = [nameLabel.textsizeWithFont:font constrainedToSize:sizelineBreakMode:UILineBreakModeWordWrap];

   nameLabel.frame = CGRectMake(iconImage.right,35, labelsize.width, labelsize.height);  //自适应的方法

    [self.viewaddSubview:nameLabel];



iOS 7.0之后的方法:

nameLabel = [[UILabelalloc]initWithFrame:CGRectZero];

    [nameLabel setNumberOfLines:0];

    nameLabel.textColor = [UIColorblackColor];

    nameLabel.text =@"西门吹雪";

   CGSize labelsize = [nameLabel.textboundingRectWithSize:CGSizeMake(200,2000) options:NSStringDrawingUsesLineFragmentOriginattributes:[NSDictionarydictionaryWithObject:nameLabel.fontforKey:NSFontAttributeName] context:nil].size;

    nameLabel.frame =CGRectMake(iconImage.right,35, labelsize.width, labelsize.height);

    [self.viewaddSubview:nameLabel];

相比之下这个方法就简洁多了

0 0