gpt4 book ai didi

ios - NSMutableAttributedString 是否自动连接相同的相邻属性?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:04:39 26 4
gpt4 key购买 nike

我们的 iOS 应用程序中有一个简单的标记解析器,它获取带有类似 HTML 标签的文本,并通过遍历简单 NSString 中的每个字符将其转换为 NSAttributedString并生成一个 NSMutableAttributedString

在最坏的情况下,我们在遍历字符串时向每个字符添加了一组新的属性,NSMutableAttributedString 是否足够智能,可以将相同的相邻属性范围连接在一起并进行优化?或者在 Core Text 中渲染会非常低效和缓慢吗?

我并不是说这是一个很好的算法!我只是在看最坏的情况,想知道 NSMutableAttributedString 是否有任何内置的智能行为?

最佳答案

我只是尝试了这样的事情(我的真实代码的简化版本):

NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:@"Testfoobarhey"];
UIFont *font = [UIFont fontWithName:@"Georgia-Bold" size:12.0];
[text addAttribute:NSFontAttributeName value:font range:NSMakeRange(4, 3)];
[text addAttribute:NSFontAttributeName value:font range:NSMakeRange(7, 3)];

换句话说,我在彼此旁边添加了两个粗体属性。然后查看结果:

NSLog(@"%@", text);

输出显示了三个文本 block :普通字体的“Test”、粗体的“foobar”和普通字体的“hey”。

所以回答你的问题,是的,看起来两个相邻的格式范围在 NSMutableAttributedString 中自动连接。

附言在相关说明中,我注意到如果我应用一个范围跨越换行符的属性,则生成的 NSAttributedString 将在换行符之前有一个属性,在换行符之后有另一个属性,而换行符本身不会有任何属性。因此,如果您一次解析一个字符,则可能需要对此进行补偿。

关于ios - NSMutableAttributedString 是否自动连接相同的相邻属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15740804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com