1、例如一句话 a sdf sdfsdf sdfsdgd (sdf : sdf a) 。使用自动换行时,有什么办法让 () 里的内容包括 () 被看成一个整体,不被拆开换行。
2、如图:

目前自动换行对于长单词会自动到下一行,对于这种用括号括起来的整体不被拆开换行应该如何处理。
3、可以 \n 手动换行,但是文本内容比较多有没有更好的方案?
可以用代码在每一个(前加上\n 然后输出,然后在复制回lable组件里
() 这个位置不固定,有的在句中,有的句首,有的句末
肯定先遍历所有()的位置,然后在添加
目前文案内容比较多,Label 设置的是宽度固定,高度动态适配,() 的位置也是在文案里随机的。1、如果 () 整体本身就在同一行,这个就不需要强制 \n 换行,目前想做的是将 () 识别成一个整体,类似长单词一样,让 label 自动识别不被换行。
切割出来算宽度,判断要不要加换行
如果括号里内容一行放不下怎么办
这个就相当于手动换行了,在需要换行的地方加 \n
暂时不存在这种情况,策划的意思就是不想手动调文案,让代码识别() 为一个整体,不被拆分换行
如果都是英文,估计一行放多少个字符,算下要不要(换行
代码计算不算是手动添加吧
是的,目前做的多语言,文案很多,策划不想一个一个调整,让代码识别 () 为一个整体自动换行。目前 Label 我看是长单词会自动识别为一个整体,一行放不下会自动到下一行,单词不会被拆分
问ai吧,这种手写的算法很容易踩坑
可以在 ( 前面加空格, 英文添加空格之后 后面的单词会被标记为整单词, 换行就会换下一行
代码里面写这种算法不太建议,要不写个脚本批量处理json文本吧,算一下一行容纳字符和括号的数量,做好判断条件应该问题不大,自动添加换行编码。这样可行性高一点吧
空格是有的,我刚试了下不管是一个空格还是半个空格都不会识别为整体
protectParentheses(text: string): string {
return text.replace(/([^)]*)/g, (match) => {
return <nobr>${match}</nobr>;
});
}富文本用这个可以生效
印象中3.x应该是是text-utils.ts这个文件 可以在richText新增个属性 比如是否开启()按整体换行 在需要的地方开启这个就行 实现逻辑在text-utils.ts里面照抄英文单词逻辑就行 还有就是文本会不会有(123(456)789) 这种嵌套需求 有的话要特别处理下 如果没有 那其实和英文单词应该没有区别
3.8.8 富文本 (132:234,444) 不生效 
让AI处理你的原始文本,在判断(),这样好一点