ios动态设置lbl文字标签的高度
txtlbl.font=[UIFontboldSystemFontOfSize:14.0f]; txtlbl.numberOfLines=0; NSString*str=@" 阿方决定设立科技特网络离开电视剧分w额两个大陆高科技了了不见了日i倒计时离开我说老师肯德基弗兰克萨江东父老将费德勒说阿方决定设立科技特网络离开电视剧分w额两个大陆高科技了了不见了日i倒计时离开我立科说老师肯德基弗兰克萨江东父老将费德勒说"; CGSizesize=[strsizeWithFont:txtlbl.fontconstrainedToSize:CGSizeMake(txtlbl.frame.size.width,MAXFLOAT)lineBreakMode:NSLineBreakByWordWrapping]; //根据计算结果重新设置txtlbl的尺寸 [txtlblsetFrame:CGRectMake(7,0,310,size.height)]; txtlbl.text=str;
方法二:
//iOS7_API_根据文字字数动态确定Label宽高 //设置Label的字体HelveticaNeue Courier UIFont*fnt=[UIFontfontWithName:@"HelveticaNeue"size:24.0f]; _nameLabel.font=fnt; //根据字体得到NSString的尺寸 CGSizesize=[_nameLabel.textsizeWithAttributes:[NSDictionarydictionaryWithObjectsAndKeys:fnt,NSFontAttributeName,nil]]; //名字的H CGFloatnameH=size.height; //名字的W CGFloatnameW=size.width; _nameLabel.frame=CGRectMake(0,0,nameW,nameH);
方法三:
//宽度W CGFloatcontentW=self.bounds.size.width-_content.frame.origin.x-kMargin; //label的字体HelveticaNeue Courier UIFont*fnt=[UIFontfontWithName:@"HelveticaNeue"size:18.0f]; _content.font=fnt; _content.numberOfLines=0; _content.lineBreakMode=NSLineBreakByWordWrapping; //iOS7中用以下方法替代过时的iOS6中的sizeWithFont:constrainedToSize:lineBreakMode:方法 CGRecttmpRect=[_content.textboundingRectWithSize:CGSizeMake(contentW,1000)options:NSStringDrawingUsesLineFragmentOriginattributes:[NSDictionarydictionaryWithObjectsAndKeys:fnt,NSFontAttributeName,nil]context:nil]; //高度H CGFloatcontentH=tmpRect.size.height; NSLog(@"调整后的显示宽度:%f,显示高度:%f"contentW,contentH); _content.frame=CGRectMake(0,0,contentW,contentH);