Kärntext
Core Text är ett API i Core Foundation- stil i macOS , som först introducerades i Mac OS X 10.4 Tiger , offentliggjordes i Mac OS X 10.5 Leopard och introducerades för iPad med iPhone SDK 3.2. Genom att exponera ett C API , ersätter det textåtergivningsförmågan i de numera utfasade QuickDraw- och ATSUI -ramverken i tidigare versioner av Mac OS X. Enligt Apple är Core Text "designad för hög prestanda och användarvänlighet" och dess layout-API är "enkel, konsekvent och tätt integrerad med Core Foundation, Core Graphics och Cocoa."
Funktioner
Kärntext tillhandahåller följande ogenomskinliga typer:
- CTFramesetter - skapar CTFrame-objekt från ett givet tillskrivet strängobjekt och CGPath-objekt med hjälp av CTTypesetter.
- CTTypesetter - utför linjelayouter; t.ex. linjebrytning
- CTFrame - representerar en array av linjer (dvs. CTLine-objekt).
- CTLine - representerar en rad glyph-körningar.
- CTRun - en ordnad samling glyfer som delar samma attribut.
- CTFont - representerar ett teckensnitt.
Exempel
Följande kod visar texten "Hello, World!" till det givna grafiska sammanhanget.
0
// Prepare font CTFontRef font = CTFontCreateWithName ( CFSTR ( "Times" ), 48 , NULL ); // Skapa en tillskriven sträng CFStringRef- nycklar [] = { kCTFontAttributeName }; CFTypeRef -värden [] = { font }; CFDictionaryRef attr = CFDictionaryCreate ( NULL , ( const void ** ) & keys , ( const void ** ) & values , sizeof ( keys ) / sizeof ( keys [ ]), & kCFTypeDictionaryKeyCallBacks , & kCFTypeCBackVs ; CFAttributedStringRef attrString = CFAttributedStringCreate ( NULL , CFSTR ( "Hej världen!" ), attr ) ; CFRease ( attr ); // Rita strängen CTLineRef line = CTLineCreateWithAttributedString ( attrString ); CGContextSetTextMatrix ( kontext , CGAffineTransformIdentity ); //Använd denna när du använder standardvykoordinater //CGContextSetTextMatrix(context, CGAffineTransformMakeScale(1.0, -1.0)); //Använd den här om vyns koordinater är vända CGContextSetTextPosition ( context , 10 , 20 ); CTLineDraw ( linje , sammanhang ); // Rensa upp CFRease ( linje ); CFRease ( attrString ); CFRease ( teckensnitt );
externa länkar
Kategorier: