v1.10.0です。
アイコンのY座標算出の式がおかしい。
座標に2が足されているのは36pxの高さの行に32pxの高さのアイコンを表示するための雑な式であり、this.lineHeight()から得られる行の高さを変更した場合に表示がおかしくなります。
素材規格を変更したことによる解像度やレイアウトの変更を一切考慮しておらず、良くない実装だと思います。
textState.heightもしくは、this.lineHeight()から算出した方がまだまともだと言えます。
v1.10.0です。
アイコンのY座標算出の式がおかしい。
座標に2が足されているのは36pxの高さの行に32pxの高さのアイコンを表示するための雑な式であり、this.lineHeight()から得られる行の高さを変更した場合に表示がおかしくなります。
素材規格を変更したことによる解像度やレイアウトの変更を一切考慮しておらず、良くない実装だと思います。
記事とコード、ありがとうございます!これを共有する前に、デフォルトの行高の標準プロジェクトでもこの位置ずれが発生するのでしょうか、それとも lineHeight() が上書きされた場合やアイコンサイズが変更された場合にのみ発生するのでしょうか?提示されたスニペットを見ると、+ 2 は 36px の行に対して 32px のアイコンに合わせて調整されているように見えるため、これらの値が変更された場合にのみズレが生じるのか気になっています。
もし後者のケースであれば、これはバグというよりは改善要望となり、対処されるかどうかではなく、どこに報告するかが変わってきます。いずれにせよ、textState.height から Y 座標を導出する方が、より柔軟性の高い実装のように見えます。
フォントサイズを変更する制御文字を使用した場合にも発生します。
+2は雑過ぎます。
textState.heightから算出してセンタリングを行うのが妥当でしょう。
maxFontSizeInLine()の処理にアイコン高さを含めるとより完璧です。
メンションがうまくいかなかったのでチェックお願いします。
ピンチありがとうございます!\{ と \} は組み込みの制御文字なので、標準的なプロジェクトでもこれが表示されます。アイコンを textState.height から中央に配置する提案や、maxFontSizeInLine() にアイコンの高さを含める提案とともに、バグとして報告します。