// // RADetailSingleLineModel.m // Apex And Drivers // // Created by Jack on 2018/6/2. // Copyright © 2018年 USAI. All rights reserved. // #import "RADetailSingleLineModel.h" static const CGFloat SpaceWidth = 10.0f; static const CGFloat SpaceHeight = 38.0f; @implementation RADetailSingleLineModel { CGFloat _height; } - (void)setValue:(NSString *)value { _value = value; dispatch_async(dispatch_get_global_queue(0, 0), ^{ [self caculateValueHeight]; }); } - (CGFloat)height { if (_height <= 0) { [self caculateValueHeight]; } return _height; } - (void)caculateValueHeight { CGFloat w = self.width; if (w <= 0) { w = CGRectGetWidth([UIScreen mainScreen].bounds); } CGFloat h = [self.value boundingRectWithSize:CGSizeMake(w - SpaceWidth, FLT_MAX) options:(NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading) attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15.0f]} context:nil].size.height; _height = h + SpaceHeight; if (_height < 70.0f) { _height = 70.0f; } } @end