alibaba / GaiaX

动态模板引擎是一套轻量化、跨平台、高性能的纯原生移动端卡片渲染动态化解决方案
https://youku-gaiax.github.io/
Apache License 2.0
1.2k stars 142 forks source link

iOS text fit-content 多行时 sizeTemplate sizeWithTemplateItem 高度计算异常 #445

Closed JohnTsaii closed 10 months ago

JohnTsaii commented 11 months ago

描述这个问题 当布局中有个text控件是多行自适应且要动态撑开高度的时候,布局的高度会计算成一行的高度。

复现步骤

预期正确的结果

请清晰和简明的描述你预期正确的结果。

截图

如果可以的话,添加截图来帮助解释您的问题。

客户端 (请填写如下信息) :

JohnTsaii commented 11 months ago

原因定位到是GXTextNode 计算高度的方法- (void)calculateWithData:(NSDictionary *)data没有将text转成attributedString 到属性attributedText,最终计算的text size 时候需要用到这个属性

- (CGSize)labelSizeForFont:(UIFont *)font
                  maxWidth:(CGFloat)maxWidth
             lineBreakMode:(NSLineBreakMode)lineBreakMode {
// ···
    // CTLineRef Array & lineNum
    NSArray *linesRef = GXLinesRefArray(font, text, maxWidth, maxLines, self.attributedText);
// ···
}

稍后补充pr