Loading article…
Core TextはmacOSのCore FoundationスタイルのAPIで、 Mac OS X 10.4 Tigerで初めて導入され、Mac OS X 10.5 Leopardで一般公開され、iPhone SDK 3.2 でiPad向けに導入されました。C APIを公開し、以前のバージョンの Mac OS X で非推奨となったQuickDrawおよびATSUIフレームワークのテキストレンダリング機能を置き換えます。Apple によると、Core Text は「高いパフォーマンスと使いやすさを考慮して設計」されており、そのレイアウト API は「シンプルで一貫性があり、Core Foundation、Core Graphics、および Cocoa と緊密に統合されている」とのことです。[ 1 ]
Core Text では、以下の不透明型が提供されています。
以下のコードは、Objective-Cで指定されたグラフィック コンテキストに「Hello, World!」というテキストを表示します。
// フォントを準備するCTFontRef font = CTFontCreateWithName ( CFSTR ( "Times" ), 48 , NULL );// 属性付き文字列を作成しますCFStringRef keys [] = { kCTFontAttributeName }; CFTypeRef values [] = { font }; CFDictionaryRef attr = CFDictionaryCreate ( NULL , ( const void ** ) & keys , ( const void ** ) & values , sizeof ( keys ) / sizeof ( keys [ 0 ]), & kCFTypeDictionaryKeyCallBacks , & kCFTypeDictionaryValueCallBacks ); CFAttributedStringRef attrString = CFAttributedStringCreate ( NULL , CFSTR ( "Hello, World!" ), attr ); CFRelease ( attr );// 文字列を描画しますCTLineRef line = CTLineCreateWithAttributedString ( attrString ); CGContextSetTextMatrix ( context , CGAffineTransformIdentity ); // 標準のビュー座標を使用する場合は、こちらを使用します//CGContextSetTextMatrix(context, CGAffineTransformMakeScale(1.0, -1.0)); // ビューの座標が反転している場合は、こちらを使用しますCGContextSetTextPosition ( context , 10 , 20 ); CTLineDraw ( line , context );// クリーンアップCFRelease ( line ); CFRelease ( attrString ); CFRelease ( font );