Nullified Construction

.nil?

Core Text APIを使用した際に起こる行間の問題について

Core Text APIを使用して日本語をレンダリングする際に、行間が英数文字と比べると異様に広くなる問題があります。詳しくは E-WA’s Blog - Tweetbot:日本語テキストの行間について で説明されています。

CTLineをループして、Y座標をCTFramesetterに頼らず自力で指定し、CTLineDrawで一行ごと描画することでこの問題を回避できます。NSLayoutManagerを使用して英数字のみを描画した際に使用される行の高さを取得しています。

コードは https://gist.github.com/1497649 に置いてあります。