iOS 获取字符串size、富文本高度

获取字符串size

方法一:
- (CGSize)sizeWithString:(NSString *)string font:(UIFont *)strFont{
    CGSize tempSize = [string sizeWithAttributes:@{NSFontAttributeName:strFont}];
    return tempSize;
}
方法二:
- (CGSize)sizeWithString:(NSString *)string constraintSize:(CGSize)constraintSize font:(UIFont *)strFont{
    NSDictionary *attributes = @{NSFontAttributeName:strFont};
    NSInteger options = NSStringDrawingUsesFontLeading
                      | NSStringDrawingTruncatesLastVisibleLine
                      | NSStringDrawingUsesLineFragmentOrigin;
    CGRect stringRect = [string boundingRectWithSize:constraintSize options:options attributes:attributes context:NULL];
    return stringRect.size;
}

获取富文本高度

/**
 *  计算富文本的高度
 */
- (CGFloat)getAttributedStringHeightWithText:(NSAttributedString *)attributedString andWidth:(CGFloat)width andFont:(UIFont *)font {
    static UILabel *stringLabel = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{//生成一个同于计算文本高度的label
        stringLabel = [[UILabel alloc] init];
        stringLabel.numberOfLines = 0;
    });
    stringLabel.font = font;
    stringLabel.attributedText = attributedString;
    return [stringLabel sizeThatFits:CGSizeMake(width, MAXFLOAT)].height;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值