Closed TuDoudong closed 7 years ago
CGSizeMake( MAXFLOAT , label.height_sd) 你太粗心了吧 width= MAXFLOAT
然而这个是SD里面的计算方法。。。
我瞧瞧
CGRect rect = [label.text boundingRectWithSize:CGSizeMake(label.width_sd, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName : label.font} context:nil]; 这才是人家的源码
你搞错了 我之前也遇到过 layout添加不正确 cpu会耗死
是这个方法,这个跟layout 添加方式没关系吧,都要进行处理的
我明白了 if (view.sd_maxWidth && (model.rightSpaceToView || model.rightEqualToView)) { // 靠右布局前提设置 [self layoutAutoWidthWidthView:view model:model]; view.fixedWidth = @(view.width_sd); }
满足这些条件会调用这个方法的
也就是说,以右边界为layout参考点,自动设置width
非常感谢你的解答
CGRect rect = [label.text boundingRectWithSize:CGSizeMake(MAXFLOAT, label.height_sd) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName : label.font} context:nil];
文本计算消耗了大量的cpu 资源 达到1008x 请问有什么可以优化的