UILabel和UITextView的宽、高、行数等

// 生成AttributeString
-(NSAttributedString *)attributeWithLineSpace:(CGFloat)lineSpace font:(UIFont *)font color:(UIColor *)color withText:(NSString *)text{
    NSParameterAssert(font && color);
    if (text.length == 0) return nil;
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    paragraphStyle.lineSpacing = lineSpace;  //设置行间距
    paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
    paragraphStyle.alignment = NSTextAlignmentLeft;
    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName:font,NSForegroundColorAttributeName:color}];
    [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [text length])];
    return [attributedString copy];
}

// 根据AttributeString计算高度
 NSAttributedString *explaintAtt = [self attributeWithLineSpace:8 font:[UIFont pf_MediumFontOfSize:14] color:HEX_RGBA(0x333331, 1) withText:_newsModel.explain];
CGSize size =  [explaintAtt boundingRectWithSize:CGSizeMake(SCREEN_WIDTH() - 44 - 33 , MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil].size;
// 注意这里取整加1
 CGFloat height= ceil(size.height) + 1;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 将自己的累藏起来 将自己的疲倦藏起来 将自己的心事藏起来 将自己藏起来 藏到一个没有人指责我 没有人不喜欢我的地方...
    君晓墨阅读 246评论 0 3
  • 每个生命的人生各不相同, 但就其本质而言,无一不是趋利避害
    雨泽儿阅读 241评论 1 0
  • 已然写了502首流水诗。我试着不自谦,努力对得起这过去的502天。平淡的数字因为日诗而清泉石上流。就这样,我淌在生...
    小者阅读 251评论 2 2
  • 新年新气向 新年新希望 新年新辉煌!
    撸好袖子阅读 178评论 0 0