canvas 文字在容器内自动换行

2023-09-22  本文已影响0人  littlesunn
    toFormateStr(ctx: CanvasRenderingContext2D, text:string, boxWidth: number, startX: number, startY: number, lineHeight: number) {
        let textArr = text.split("");
        let liner = 0;
        let fontSize = 20
        var drawText = (textArr: string[]) => {
            for (let i = 0; i < textArr.length; i++) {
                const t = textArr[i];
                if (fontSize * (i + 1) > boxWidth) {
                    liner++;
                    drawText(textArr.slice(i, textArr.length))
                    break;
                }else {
                    ctx.fillText(t, (startX + fontSize * i), startY + liner * fontSize + liner * lineHeight);
                }
            }
        }
        drawText(textArr);
        return liner + 1;
    }
上一篇下一篇

猜你喜欢

热点阅读