码迷,mamicode.com
首页 > 移动开发 > 详细

ios 中内容label高度自适应

时间:2014-12-23 19:37:54      阅读:313      评论:0      收藏:0      [点我收藏+]

标签:label   高度自适应   ios   

首先并且最重要的是计算文本高度,然后再设置label的高度,

计算文本高度:

假设文本:

 NSString*strtest =@" 新华网北京1216日电据新华社新华国际客户端报道,一日之计在于晨。克强总理15日的紧张日程从一顿早饭开始。天刚蒙蒙亮,哈萨克斯坦总理马西莫夫就来到克强总理下榻的酒店——北京大厦,邀请克强总理一起吃早餐。这是一顿简单的早餐,只有一张圆桌,两把椅子,一些简单的中西餐点。这也是一顿丰盛的早餐,两位总理在餐桌上就中哈产能合作达成的共识内容丰富,覆盖广泛。这更是一顿登高望远的早餐,这项合作不仅将惠及中哈两国人民,更将为区域内各国带来长远的共同利益。站在大厦23层的旋转餐厅,阿斯塔纳城尽收眼底,这里适合登高远眺。";

事实上ios 有两种方法:

ios7.0之前用:

[strtestsizeWithFont:ContentFontconstrainedToSize:CGSizeMake(ScreenWeight -20, 1000lineBreakMode:NSLineBreakByWordWrapping];


之后用下面的方法比较好:

    CGRect frame = [strtestboundingRectWithSize:CGSizeMake(220,1000) options:NSStringDrawingUsesLineFragmentOriginattributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:10]}context:nil];

attributes参数有:

 NSFontAttributeName         // UIFont, default Helvetica(Neue) 12

 NSParagraphStyleAttributeName       // NSParagraphStyle, default defaultParagraphStyle

 NSForegroundColorAttributeName      // UIColor, default blackColor

 NSBackgroundColorAttributeName      // UIColor, default nil: no background

 NSLigatureAttributeName             // NSNumber containing integer, default 1: default ligatures, 0: no ligatures

 NSKernAttributeName       // NSNumber containing floating point value, in points; amount to modify default kerning. 0 means kerning is disabled.

 NSStrikethroughStyleAttributeName // NSNumber containing integer, default 0: no strikethrough

 NSUnderlineStyleAttributeName       // NSNumber containing integer, default 0: no underline

 NSStrokeColorAttributeName          // UIColor, default nil: same as foreground color

 NSStrokeWidthAttributeName          // NSNumber containing floating point value, in percent of font point size, default 0: no stroke; positive for stroke alone, negative for stroke and fill (a typical value for outlined text would be 3.0)

 NSShadowAttributeName ;             // NSShadow, default nil: no shadow

 NSTextEffectAttributeName           // NSString, default nil: no text effect


 NSAttachmentAttributeName           // NSTextAttachment, default nil

 NSLinkAttributeName                 // NSURL (preferred) or NSString

 NSBaselineOffsetAttributeName      // NSNumber containing floating point value, in points; offset from baseline, default 0

 NSUnderlineColorAttributeName       // UIColor, default nil: same as foreground color

 NSStrikethroughColorAttributeName   // UIColor, default nil: same as foreground color

 NSObliquenessAttributeName          // NSNumber containing floating point value; skew to be applied to glyphs, default 0: no skew

 NSExpansionAttributeName            // NSNumber containing floating point value; log of expansion factor to be applied to glyphs, default 0: no expansion



建立label的时候注意:

① label的font,必须和计算时用的font一样

② label的numberOfLines要设置为零

③ label的宽度设置成计算时设置的宽度一致

ios 中内容label高度自适应

标签:label   高度自适应   ios   

原文地址:http://blog.csdn.net/lv_ruanruan/article/details/42105121

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!