用NSString中的一个方法,第一个参数是text形成的frame的最大的宽度和高度, 其中的options比较关键
CGSize labelSize = [text boundingRectWithSize:CGSizeMake(size.width - 16, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading|NSStringDrawingTruncatesLastVisibleLine attributes:attributes context:nil].size;
这里几个options理解的也不好,先大概说一下:
NSStringDrawingUsesLineFragmentOrigin 多行绘制必有选项,不然测量的frame是单行文字的frame
NSStringDrawingUsesFontLeading 决定行高的确定方法
NSStringDrawingTruncatesLastVisibleLine 多行模式下,最后一行显示不下时,采用截断方式显示,就是显示...
一般的文字frame计算,都需要上面3个选项!