当渲染一段文字之前, 我们先测量一下这段文字的长度a, 再计算一下文字起点距离canvas边缘的距离b
1. 如果a <= b, 那么直接渲染即可. 2. 如果a > b, 那么就需要将文字分成多行. 先找到一个符合要求的最长第一行. 以此类推, 直到第n行. 3. 如果后期遇到了性能问题, 我们就使用二分法, 来确定每一行的字符数, 优化算法性能.然后, 我们来实现这个算法:
然后, 我们在CanvasTextEditorText的构造函数中调用这个算法, 用来:
1. 获取到分割后的lines
2. 计算出多行文字的真实高度
3. 在render中渲染出每一行
然后看一下最终效果:
文字折了两次, 变成了三行, 很棒!