Uilabel自适应文字的大小
2015-03-25 22:54 唐不坏 阅读(268) 评论(0) 收藏 举报对于iOS7+,
对单行文本数据的显示调用- (CGSize)sizeWithAttributes:(NSDictionary *)attrs;方法来得到文本宽度和高度。
替代过时的- (CGSize)sizeWithFont:(UIFont *)font 方法。
使用方法如下:
CGSize Size=[yourStr sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:14]}];
得到uilabel的frame的宽高.
对于多行文本数据的显示调用- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context ;方法来得到文本宽度和高度;同时注意在此之前需要设置文本控件的numberOfLines属性为0。
替代过时的sizeWithFont:constrainedToSize:lineBreakMode:方法。
使用方法如下:
uilabel.numberOfLines = 0; uilabel.lineBreakMode = NSLineBreakByWordWrapping; CGSize textSize=[yourStr boundingRectWithSize:CGSizeMake(textWidth, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:14]} context:nil ].size;
获得文本框的宽高。其中CGSize宽为你设置的uilabel的宽度,高度理论上无限。所以CGSize设置的是对uilabel宽高的限制。
浙公网安备 33010602011771号