ios7.0文字自适应 boundingRectWithSize 总是返回错误rect

图为我用两个函数做的测试,这是算出size重新设置frame后的结果蓝色的是用-(CGRect)boundingRectWithSize:(CGSize)sizeopti... 图为我用两个函数做的测试,这是算出size重新设置frame后的结果
蓝色的是用
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context
不能返回正确的size

红色的使用
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode
能返回正确size

两个label用的字符串是同一个 ,有高手解释下并给个正确代码吗?
展开
 我来答
欧阳讲历史
2014-08-08 · TA获得超过128个赞
知道答主
回答量:69
采纳率:0%
帮助的人:43.1万
展开全部
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes
是新的函数,你需要设置attributes相关属性.例如:

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
NSDictionary *attributes = @{NSFontAttributeName:label.font, NSParagraphStyleAttributeName:paragraphStyle.copy};

labelSize = [someText boundingRectWithSize:CGSizeMake(207, 999) options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式