Swiftサラリーマン当サイトはリンクフリーです。今回イラストをつかいつつ理解を深めていきたいと思います。上記がAppleのCoreText説明に記載されているイラスト図ですが正直よくわかりません。様々な使い方ができるようです。Text以下の単語がまず理解できていないので一つずつ調べてみますCTFramesetterCTTypesetterCTLineCTRunCGGlyphCTFontCFAttributedStringCGPathCTFramesetterまずCTFramesetter。これがCoreTextのトップレベルに位置する型のようです。勝手にこのクラスが処理してくれる様です。自分で書いていてしっくりしませんので、一旦サンプルコードを記載してみます。これはアフィン変換する前の状態にもどすようです。描画したい領域を作成します。"こんにちはSwiftサラリーマンです。ここで装飾するかを判断します。フォントの色を赤色にしたりする場合はattStringを変更していく。出てきましたCTFramesetter。CTFrameを作成します。framesetterを入れてやる必要があります。CTFramesetterとCTFrameは二つで一つでしょうか。上記の内容を描画します。}}こんな感じに表示されます。この文字を利用して図を作ってみます。CTRun等ありますが、ここまでです。順に理解を深めていきます。改行、ハイフン、行間の縦書き横書き両方の行レイアウト。Typesetterオブジェクトは装飾文字列のインプットとGlyaphsの集合のラインを提供します。(GraphのRunsに)、CTLineのオブジェクトに対して。frame.Typsetterは文字を画像にするエンコーディング、グラフの順番、位置の調整(カーニング、tラッキングやベースライン)。複数行のレイアウトが必要だった場合はFramesetterオブジェクトを利用します。それらはTypesetterを作成して複数行にフレーム内に出力します。typesetter.FramesetterはTypesetterを内臓していて、それに対して参照します(簡単なものとして)ただし、呼び手はおそらく柔軟なTypesetterを使うこともするでしょう。いっているのではと思われます。一行を表示するCTLineをレイアウトするのがCTTypesetterのようです。ReferenceCTLine上でCTLineも記載しましたがCTLineも同じくAppleのリファレンスを翻訳してみます。text.CTLineはテキストの文字列のことを表現します。Runsの配列を含みます。ReferenceこのCTRunやGlyphがいまいち理解できていません。CTFramesetterとCTTypesetterとCTLineは明確になってきた気がします。以下CTLineのサンプルです。先ほどのCTFrameとほぼ同じで描画箇所をCTLineDrawしています。これはアフィン変換する前の状態にもどすようです。描画したい領域を作成します。"こんにちはSwiftサラリーマンです。ここで装飾するかを判断します。CTRun再度リファレンス確認です。Runsをラインを作成する際に実施します。キャラクターの文字列、装飾やフォントオブジェクト。Runsの一つや複数の集合です。Runsはそれらをグラフィックコンテンツに描画します。Runsに実行されていく必要が多くのユーザにはありませんが。グラフィックのグラフ(Graphic=Graph)かと勘違いしていました。Glyph(=絵を使った標識)なんですね、、、間違っていました。CTTypesetterを要素に持つ最小の単位の一つ一つ?なのかな。基本的に自分で作成することはなく、NSAttributeStringを追加すると自動的に作られるようです。CTRunは複数文字にも対応しているような記載です。わからないのでサンプルコードを見直してみます。LabelCTRunは自動で作成されるとのことですので、確認。CTLineをdebugで出力すると。)}上記のような情報が、CTLineの中にCTRunの情報が既に含まれているようです。文字装飾情報やフォント情報等がCTLineに格納されていているのですね。文字フォントが勝手にHelveticaになってます。CGGlyphこちらは文字情報の最小限の単位のようです。CTLineはCGGlyphの集合体。Glyphかと思われます。36個のGlyph=36文字。(...CTFontこちらは上記のアウトプットの中のHelvetica情報のCTFontですね、ここを調整すればフォントサイズを変えたりフォント種類を変更できるようです。装飾したい時は調整できるようです。ここを調整することでルビをふったりもできますCGPath特定の形状のパスの中に表示する為の型です。上記CTFramesetterサンプルの以下描画箇所です。このpathに四角形を指定していました。このPathを円に変更してみます。これはアフィン変換する前の状態にもどすようです。描画したい領域を作成します。"こんにちはSwiftサラリーマンです。今回はCoreTextを学んでいるのですが難しい、Swiftのサンプルが少ないので苦戦中です。こんにちはSwiftサラリーマンです。今回はCoreTextを学んでいるのですが難しい、Swiftのサンプルが少ないので苦戦中です。こんにちはSwiftサラリーマンです。ここで装飾するかを判断します。出てきましたCTFramesetter。CTFrameを作成します。framesetterを入れてやる必要があります。CTFramesetterとCTFrameは二つで一つでしょうか。上記の内容を描画します。}}円が表示されました!まとめなんだかバタバタと進めましたが、Coretextを少しだけは理解できた気がします。機会があれば記載していけたらと思います。「文字の縦書き」をやってみたいのですが、どうもUITextView等には設定が無いとのことです。調べていると、本当にない?のかな。調査して作れそうなもんであればつくってみれたら、、、との気持ちで進めてみます。利用したサンプルを記載します。方法は多々あったのですが、AppDelegate内を利用しないでNavigationを実装する方法がなくハマっていましたのでを以下記載しますUIToolBar画面の端っこに追加できるツールバーコントロール。アプリにピリッとアクセントを付けます。