// // RADetailMapModel.m // Apex And Drivers // // Created by Jack on 2018/9/4. // Copyright © 2018年 USAI. All rights reserved. // #import "RADetailMapModel.h" static const CGFloat SpaceWidth = 60.0f; static const CGFloat SpaceHeight = 38.0f; @implementation RADetailMapModel { CGFloat _height; } - (void)setLatlon:(NSString *)latlon { _latlon = latlon; if ([_latlon containsString:@","]) { NSArray *arr = [_latlon componentsSeparatedByString:@","]; NSString *lat = [arr objectAtIndex:0]; NSString *lon = [arr objectAtIndex:1]; self.lat = lat; self.lon = lon; } } - (void)setLocation:(NSString *)location { _location = location; dispatch_async(dispatch_get_global_queue(0, 0), ^{ [self caculateValueHeight]; }); } - (CGFloat)height { if (_height <= 0) { [self caculateValueHeight]; } return _height; } - (void)caculateValueHeight { // if (self.location.length == 0) { // return; // } CGFloat w = self.width; if (w <= 0) { w = CGRectGetWidth([UIScreen mainScreen].bounds); } CGFloat h = [self.location boundingRectWithSize:CGSizeMake(w - SpaceWidth, FLT_MAX) options:(NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading) attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15.0f]} context:nil].size.height; CGFloat navBtnHeight = 40.0f; if (h < navBtnHeight) { // navigation button height h = navBtnHeight; } _height = h + SpaceHeight; if (_height < 80.0f) { _height = 80.0f; } } @end