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