Asosiy matn - Core Text

Asosiy matn a Asosiy fond uslubi API yilda macOS, birinchi bo'lib kiritilgan Mac OS X 10.4 Tiger, ichida ommaga e'lon qilindi Mac OS X 10.5 Leopard va uchun kiritilgan iPad iPhone SDK 3.2 bilan. Fosh qilish a C API, u endi eskirganlarning matnni ko'rsatish qobiliyatini almashtiradi QuickDraw va ATSUI Mac OS X-ning oldingi versiyalaridagi ramkalar. Apple-ga ko'ra, Core Text "yuqori ishlash va foydalanishda qulaylik uchun mo'ljallangan" va uning joylashuvi API "sodda, izchil va Core Foundation, Core Graphics va Cocoa bilan chambarchas birlashtirilgan".[1]

Xususiyatlari

Asosiy matn quyidagi shaffof bo'lmagan turlarini beradi:

  • CTFramesetter - berilgan atributlangan satr ob'ekti va CTTypesetter yordamida CGPath ob'ektidan CTFrame moslamalarini yaratadi.
  • KT tipografi - chiziqlar maketlarini bajaradi; masalan, chiziqni buzish
  • CTFrame - qatorlar qatorini ifodalaydi (ya'ni, CTLine moslamalari).
  • CTLine - bir qator gliflar qatorini aks ettiradi.
  • CTR - xuddi shu xususiyatga ega bo'lgan gliflarning buyurtma qilingan to'plami.
  • CTFont - shriftni ifodalaydi.

Misol

Quyidagi kodda "Salom, dunyo!" Matni aks etadi. berilgan grafik kontekstiga.

// Shrift tayyorlangCTFontRef shrift = CTFontCreateWithName(CFSTR("Times"), 48, NULL);// Atributlangan satr yaratingCFStringRef kalitlar[] = { kCTFontAttributeName };CFTypeRef qiymatlar[] = { shrift };CFDictionaryRef attr = CFDictionaryCreate(NULL, (konst bekor **)&kalitlar, (konst bekor **)&qiymatlar,					  o'lchamlari(kalitlar) / o'lchamlari(kalitlar[0]), &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);CFAttributedStringRef attrString = CFAttributedStringCreate(NULL, CFSTR("Salom Dunyo!"), attr);CF ozod qilish(attr);// Ipni chizishCTLineRef chiziq = CTLineCreateWithAttributedString(attrString);CGContextSetTextMatrix(kontekst, CGAffineTransformIdentity);  // Standart koordinatalardan foydalanganda shundan foydalaning// CGContextSetTextMatrix (kontekst, CGAffineTransformMakeScale (1.0, -1.0)); // Ko'rinish koordinatalari aylantirilgan bo'lsa, shundan foydalaningCGContextSetTextPosition(kontekst, 10, 20);CTLineDraw(chiziq, kontekst);// TozalamoqCF ozod qilish(chiziq);CF ozod qilish(attrString);CF ozod qilish(shrift);

Adabiyotlar

Tashqi havolalar