UIFont / CTFont — এটি কী, ফন্টের ধরন এবং Core Text

লেখক: IT Sectr প্রকাশিত: 2026-07-23 পড়ার সময়: 9 মিনিট

UIFont এবং CTFont হলো iOS-এ ফন্ট নিয়ে কাজ করার জন্য ক্লাস: UILabel এবং UITextView-তে উচ্চ-স্তরের টেক্সট কনফিগারেশনের জন্য UIKit-এর UIFont, গ্লিফ এবং মেট্রিক্সের ওপর পূর্ণ নিয়ন্ত্রণ সহ নিম্ন-স্তরের রেন্ডারিংয়ের জন্য Core Text-এর CTFont। Apple Developer Documentation-এর তথ্য অনুযায়ী, UIFont 90% স্ট্যান্ডার্ড UI কম্পোনেন্টে ব্যবহৃত হয়, যেখানে CTFont কাস্টম টেক্সট ইঞ্জিন এবং এডিটরে ব্যবহৃত হয়। উভয় ক্লাস একই ফন্ট উপস্থাপন করে তবে ভিন্ন স্তরের অ্যাবস্ট্রাকশনে।

মূল বিষয়

  • UIFont — UI কম্পোনেন্টে ফন্ট নিয়ে কাজ করার জন্য উচ্চ-স্তরের UIKit ক্লাস
  • CTFont — টাইপোগ্রাফির ওপর সুনির্দিষ্ট নিয়ন্ত্রণের জন্য নিম্ন-স্তরের Core Text ক্লাস
  • UIFont তৈরি হয় systemFont, preferredFont বা initWithName-এর মাধ্যমে, CTFont — CTFontCreateWithName-এর মাধ্যমে
  • Dynamic Type — iOS অভিযোজিত ফন্ট সিস্টেম যা অ্যাক্সেসিবিলিটি সেটিংসে স্বয়ংক্রিয়ভাবে সাড়া দেয়
  • CTFont গ্লিফ মেট্রিক্স, কার্নিং এবং OpenType টেবিলে সরাসরি অ্যাক্সেস প্রদান করে

UIFont এবং CTFont কী?

UIFont হলো একটি UIKit ক্লাস যা UI কম্পোনেন্টে টেক্সট প্রদর্শনের জন্য ফন্ট উপস্থাপন করে: UILabel, UITextView, UITextField। এটি নির্দিষ্ট আকার, ওজন এবং শৈলী সহ সিস্টেম এবং কাস্টম ফন্ট পাওয়ার জন্য একটি সরল ইন্টারফেস প্রদান করে। UIFont কার্নিং, লিগেচার এবং OpenType বৈশিষ্ট্যের ওপর সরাসরি নিয়ন্ত্রণ দেয় না — এর জন্য Core Text ব্যবহার করা হয়।

CTFont হলো একটি Core Text টাইপ (CTFontRef) যা ফন্ট ডেটাতে নিম্ন-স্তরের অ্যাক্সেস প্রদান করে। CTFont রেন্ডারিংয়ের জন্য সরাসরি Core Graphics-এর সাথে কাজ করে, বিকল্প গ্লিফ, লিগেচার এবং ভেরিয়েবল ফন্ট সহ সমস্ত OpenType এবং TrueType বৈশিষ্ট্য সমর্থন করে। CTFont অভ্যন্তরীণভাবে UIFont রেন্ডার করার জন্য UIKit দ্বারা ব্যবহৃত হয় তবে কাস্টম ড্রইংয়ের জন্য সরাসরিও উপলব্ধ।

Toll-Free Bridging

UIFont এবং CTFont toll-free bridging সমর্থন করে — কোনো অতিরিক্ত খরচ ছাড়াই টাইপের মধ্যে রূপান্তর। Swift এবং Objective-C-তে UIFont-কে CTFont বা CTFont-কে UIFont হিসেবে কাস্ট করা সম্ভব। এটি ফন্ট ডেটা কপি না করেই কনফিগারেশনের জন্য উচ্চ-স্তরের UIKit API এবং রেন্ডারিংয়ের জন্য নিম্ন-স্তরের Core Text ব্যবহার করার অনুমতি দেয়।

ফন্ট ডিস্ক্রিপ্টর

উভয় ক্লাস ফন্টের বৈশিষ্ট্য বর্ণনা করতে UIFontDescriptor (UIKit) / CTFontDescriptor (Core Text) ব্যবহার করে: নাম, আকার, ওজন, শৈলী, রূপান্তর ম্যাট্রিক্স। ডিস্ক্রিপ্টর হলো অ্যাট্রিবিউটের একটি অভিধান যা বিদ্যমান ফন্টের ভিত্তিতে নতুন ফন্ট তৈরি করতে পরিবর্তন করা যেতে পারে। উদাহরণস্বরূপ, একটি ডিস্ক্রিপ্টরে traitItalic যোগ করুন এবং একই ফন্টের ইটালিক সংস্করণ পান।

UIFont — UIKit ফন্ট

UIFont ফন্ট তৈরি করার জন্য বেশ কয়েকটি ফ্যাক্টরি মেথড প্রদান করে। systemFont(ofSize:) সিস্টেম ফন্ট San Francisco (iOS) বা Helvetica (পুরোনো সংস্করণ) রিটার্ন করে। boldSystemFont, italicSystemFont — নির্দিষ্ট শৈলী সহ ভেরিয়েন্ট। preferredFont(forTextStyle:) প্রদত্ত শৈলীর জন্য Dynamic Type ফন্ট রিটার্ন করে: .headline, .body, .caption1, .footnote। সিস্টেমে টেক্সট আকার সেটিং পরিবর্তন হলে এই ফন্টগুলি স্বয়ংক্রিয়ভাবে স্কেল হয়।

কাস্টম ফন্ট লোড করার জন্য, ফন্টের PostScript নাম সহ UIFont(name:size:) ব্যবহার করা হয়। ফন্টটি প্রথমে Info.plist-এ যোগ করতে হবে এবং অ্যাপ বান্ডলে অন্তর্ভুক্ত করতে হবে। Apple-এর মতে, সমস্ত স্ট্যান্ডার্ড UI কম্পোনেন্টের জন্য UIFont ব্যবহার করার এবং শুধুমাত্র কাস্টম রেন্ডারিং প্রয়োজন হলে CTFont-এ সুইচ করার সুপারিশ করা হয়।

Dynamic Type

Dynamic Type হলো iOS 7-এ চালু করা একটি অভিযোজিত ফন্ট সিস্টেম। ব্যবহারকারী সেটিংসে তার পছন্দের টেক্সট আকার নির্বাচন করে — অতিরিক্ত ছোট থেকে অতিরিক্ত বড় পর্যন্ত। UIFont.preferredFont স্বয়ংক্রিয়ভাবে উপযুক্ত আকারের ফন্ট রিটার্ন করে। সঠিক অপারেশনের জন্য, সমস্ত UILabel-এ adjustsFontForContentSizeCategory = true থাকতে হবে। Dynamic Type অ্যাক্সেসিবিলিটি কমপ্লায়েন্সের জন্য প্রয়োজনীয়।

UIFontDescriptor

UIFontDescriptor স্ক্র্যাচ থেকে নতুন ইনস্ট্যান্স তৈরি না করে ফন্ট অ্যাট্রিবিউট পরিবর্তন করার অনুমতি দেয়। মেথড addingAttributes(_:), withSymbolicTraits(_:), withFamily(_:) পরিবর্তিত প্যারামিটার সহ একটি নতুন ডিস্ক্রিপ্টর রিটার্ন করে। এটি ফন্ট ভেরিয়েন্ট পাওয়ার জন্য সুবিধাজনক: PostScript নাম না জেনেই সিস্টেম ফন্টে traitBold যোগ করুন এবং বোল্ড সংস্করণ পান।

CTFont — Core Text ফন্ট

CTFont (CTFontRef) নিম্ন-স্তরের ফন্ট কাজের জন্য একটি Core Text টাইপ। এটি CTFontCreateWithName, CTFontCreateWithFontDescriptor, CTFontCreateCopyWithAttributes দ্বারা তৈরি হয়। প্রতিটি ফাংশন নির্দিষ্ট ইন্টারফেস, আকার এবং ঐচ্ছিক অ্যাট্রিবিউট সহ একটি ফন্ট রিটার্ন করে। CTFont drawRect-এর মাধ্যমে কাস্টম UIView-এ টেক্সট রেন্ডার করার জন্য Core Graphics-এ ব্যবহৃত হয়।

CTFont UIFont-এ অনুপলব্ধ মেট্রিক্সে অ্যাক্সেস প্রদান করে: CTFontGetGlyphsForCharacters নির্দিষ্ট অক্ষরের জন্য গ্লিফের একটি অ্যারে রিটার্ন করে, CTFontGetAdvancesForGlyphs — প্রতিটি গ্লিফের প্রস্থ, CTFontGetBoundingBox — গ্লিফ সীমানা। কাস্টম টেক্সট লেআউট তৈরির জন্য এটি প্রয়োজনীয়: কলাম, ঘূর্ণন, র‍্যাপিং।

ফন্ট মেট্রিক্স

CTFontGetAscent, CTFontGetDescent, CTFontGetLeading উল্লম্ব ফন্ট মেট্রিক্স রিটার্ন করে। CTFontGetUnitsPerEm — প্রতি em-বর্গ ইউনিটের সংখ্যা, অনুপাত গণনার জন্য ব্যবহৃত হয়। CTFontGetGlyphCount — ফন্টে মোট গ্লিফের সংখ্যা। এই ডেটা প্রিন্ট টাইপোগ্রাফি এবং কাস্টম লেআউটের জন্য গুরুত্বপূর্ণ যেখানে প্রতিটি অক্ষরের সুনির্দিষ্ট অবস্থান প্রয়োজন।

OpenType এবং ভেরিয়েবল ফন্ট

CTFont OpenType বৈশিষ্ট্য সমর্থন করে: CTFontCopyFeatures উপলব্ধ ফন্ট ফাংশনের (লিগেচার, বিকল্প অক্ষর, কার্নিং) একটি অভিধান রিটার্ন করে, CTFontEnableFeature একটি নির্দিষ্ট অপশন সক্রিয় করে। ভেরিয়েবল ফন্ট CTFontCopyVariation এবং CTFontCreateCopyWithVariation-এর মাধ্যমে কনফিগার করা হয়, যা ক্রমাগত পরিসরে weight, width এবং slant পরিবর্তন করার অনুমতি দেয়।

কোডে UIFont কীভাবে ব্যবহার করবেন

Swift-এ UIFont তৈরি করা ফ্যাক্টরি মেথডগুলির একটির মাধ্যমে বা নাম দ্বারা সরাসরি ইনিশিয়ালাইজেশনের মাধ্যমে করা হয়। সবচেয়ে সাধারণ উপায় হলো সিস্টেম ফন্টের জন্য systemFont(ofSize:weight:) বা Dynamic Type-এর জন্য preferredFont(forTextStyle:)। কাস্টম ফন্টের জন্য, PostScript নাম নির্দিষ্ট করে UIFont(name:size:) ব্যবহার করা হয়।

বিভিন্ন ওজন সহ সিস্টেম ফন্ট

UIFont.systemFont(ofSize:weight:) UIFont.Weight গ্রহণ করে — .ultraLight থেকে .black পর্যন্ত। এই মেথড সংশ্লিষ্ট ওজন সহ San Francisco সিস্টেম ফন্ট রিটার্ন করে। UIFont.monospacedSystemFont, UIFont.monospacedDigitSystemFont কোড এবং সংখ্যার জন্য মনোস্পেস ফন্ট রিটার্ন করে। সমস্ত সিস্টেম ফন্ট স্বয়ংক্রিয়ভাবে Dynamic Type সমর্থন করে।

swift
let regularFont = UIFont.systemFont(ofSize: 16, weight: .regular)
let boldFont = UIFont.systemFont(ofSize: 16, weight: .bold)
let headlineFont = UIFont.preferredFont(forTextStyle: .headline)
let monoFont = UIFont.monospacedSystemFont(ofSize: 14, weight: .regular)
label.font = headlineFont

প্রতিটি ফন্ট সরাসরি UILabel-এর font প্রপার্টিতে অ্যাসাইন করা যেতে পারে বা NSFontAttributeName-এর মাধ্যমে NSAttributedString-এ ব্যবহার করা যেতে পারে। সিস্টেম ফন্ট iOS দ্বারা ক্যাশ করা হয়, তাই সিস্টেম ফন্ট পুনরায় তৈরি করলে কোনো ওভারহেড হয় না।

বান্ডল থেকে কাস্টম ফন্ট

কাস্টম ফন্ট ব্যবহার করতে, প্রজেক্ট বান্ডলে TTF বা OTF ফাইল যোগ করুন এবং এটি Info.plist (UIAppFonts)-এ উল্লেখ করুন। ফন্টের PostScript নাম UIFont.familyNames এবং UIFont.fontNames(forFamilyName:)-এর মাধ্যমে খুঁজে পাওয়া যেতে পারে। নিবন্ধনের পরে, ফন্ট অ্যাপের যে কোনো জায়গা থেকে UIFont(name:size:)-এর মাধ্যমে উপলব্ধ হয়।

swift
// সকল ফন্ট পরিবারের নাম পান
for family in UIFont.familyNames {
    let names = UIFont.fontNames(forFamilyName: family)
    print("\(family): \(names)")
}
// কাস্টম ফন্ট লোড করুন
if let customFont = UIFont(name: "MyCustomFont-Regular", size: 18) {
    label.font = customFont
}

যদি ফন্টের নাম ভুলভাবে উল্লেখ করা হয়, UIFont(name:size:) nil রিটার্ন করে। ফন্ট সঠিকভাবে নিবন্ধিত হয়েছে কিনা তা নিশ্চিত করতে ডিবাগিংয়ের সময় UIFont.familyNames এবং UIFont.fontNames(forFamilyName:)-এর মাধ্যমে সমস্ত উপলব্ধ ফন্ট নাম প্রিন্ট করার সুপারিশ করা হয়।

UIFont এবং CTFont-এর সাথে কাস্টম ফন্ট

কাস্টম ফন্ট লোড করা দুটি উপায়ে সম্ভব: Info.plist (UIAppFonts)-এর মাধ্যমে স্ট্যাটিক নিবন্ধন এবং CTFontManagerRegisterGraphicsFont-এর মাধ্যমে ডায়নামিক নিবন্ধন। প্রথম পদ্ধতিটি সহজ — অ্যাপ লঞ্চের সাথে সাথেই ফন্ট উপলব্ধ হয়। দ্বিতীয়টি নেটওয়ার্ক থেকে ডাউনলোড করা বা অন-ডিমান্ড রিসোর্সের জন্য ব্যবহৃত হয়।

ডায়নামিক নিবন্ধন অন-ডিমান্ড রিসোর্সের জন্য উপযোগী: যদি অ্যাপে 20+ ফন্ট থাকে, সেগুলি সবই প্রাথমিক বান্ডল থেকে বাদ দেওয়া যেতে পারে এবং প্রথম ব্যবহারে ডাউনলোড করা যেতে পারে। CTFontManagerRegisterFontsForURLs নির্দিষ্ট URL থেকে ফন্ট নিবন্ধন করে। নিবন্ধনের পরে, ফন্ট যথারীতি UIFont(name:size:)-এর মাধ্যমে উপলব্ধ হয়।

কাস্টম ফন্টের জন্য CTFontCreateWithName

Core Text-এর মাধ্যমে কাস্টম রেন্ডারিংয়ের জন্য, ফন্টের PostScript নাম সহ CTFontCreateWithName ব্যবহার করুন। UIFont-এর থেকে পার্থক্য হলো CTFont একটি রূপান্তর ম্যাট্রিক্স (CTFontCreateWithNameAndOptions) দিয়ে তৈরি করা যেতে পারে — তির্যক ফন্ট তৈরি করতে: ঢাল, X-অক্ষ স্কেলিং, ঘূর্ণন। এটি affine ট্রান্সফর্ম ব্যবহার না করে UIFont-এ উপলব্ধ নয়।

swift
// তির্যক ম্যাট্রিক্স সহ CTFont তৈরি করুন
var matrix = CGAffineTransform(a: 1, b: 0, c: 0.2, d: 1, tx: 0, ty: 0)
let ctFont = CTFontCreateWithName(
    "Helvetica" as CFString,
    24, &matrix)
// UIFont-এর সাথে toll-free bridging ব্যবহার করুন
let uiFont = ctFont as UIFont
label.font = uiFont

রূপান্তর ম্যাট্রিক্স একটি পৃথক ফন্ট ফাইল ছাড়াই ইটালিক ভেরিয়েন্ট তৈরি করার অনুমতি দেয়। প্যারামিটার c (skew) অক্ষরে ঢাল যোগ করে। ম্যাট্রিক্স ফন্টকে অনুভূমিকভাবে স্কেল করারও অনুমতি দেয় — একটি ফন্টের সংক্ষিপ্ত বা প্রসারিত ভেরিয়েন্ট তৈরি করা।

UIFont এবং CTFont-এর মধ্যে পার্থক্য

UIFont এবং CTFont-এর মধ্যে প্রধান পার্থক্য হলো অ্যাবস্ট্রাকশনের স্তর। UIFont সাধারণ কাজের জন্য একটি সরল API প্রদান করে: সিস্টেম ফন্ট পাওয়া, আকার পরিবর্তন করা, UILabel-এ প্রয়োগ করা। CTFont ফন্টের ওপর পূর্ণ নিয়ন্ত্রণ প্রদান করে: গ্লিফ, মেট্রিক্স, OpenType টেবিল এবং ভেরিয়েবল অক্ষে অ্যাক্সেস। পছন্দ কাজের ওপর নির্ভর করে।

বৈশিষ্ট্যUIFontCTFont
ফ্রেমওয়ার্কUIKitCore Text
তৈরিsystemFont / preferredFont / initWithNameCTFontCreateWithName / CTFontCreateWithDescriptor
গ্লিফ অ্যাক্সেসনাCTFontGetGlyphsForCharacters
OpenType বৈশিষ্ট্যসীমিত (UIFontDescriptor)পূর্ণ অ্যাক্সেস
ভেরিয়েবল ফন্টUIFontDescriptor-এর মাধ্যমেCTFontCopyVariation / CreateCopyWithVariation
রেন্ডারিংUI কম্পোনেন্টে স্বয়ংক্রিয়Core Graphics, কাস্টম

95% iOS ডেভেলপমেন্ট কাজের জন্য, UIFont যথেষ্ট। Core Text-এর সাথে CTFont টেক্সট এডিটর, PDF জেনারেটর, টাইপোগ্রাফিক লেআউট সহ বই বা বিরল ভাষার কাস্টম রেন্ডারিং অ্যাপ তৈরি করার সময় যুক্তিযুক্ত।

কর্মক্ষমতা এবং সর্বোত্তম অনুশীলন

iOS-এ ফন্ট নিয়ে কাজ করার জন্য কর্মক্ষমতা বিবেচনা করা প্রয়োজন। প্রতিটি অনন্য ফন্ট প্রথম অ্যাক্সেসে মেমরিতে লোড হয় এবং রিসোর্স ব্যবহার করে। San Francisco সিস্টেম ফন্ট প্রি-লোডেড এবং কোনো ওভারহেড তৈরি করে না। কাস্টম ফন্ট ফাইল থেকে লোড হয় এবং প্রথম লোডের পরে সিস্টেম দ্বারা ক্যাশ করা হয়।

একটি অ্যাপে অনন্য ফন্টের সংখ্যা 3-5 পরিবারে সীমিত করার সুপারিশ করা হয়। প্রতিটি ফন্ট মেমরিতে 50 KB থেকে 2 MB পর্যন্ত নেয়। একই পরিবারের বিভিন্ন ওজন (regular, bold, medium) ব্যবহার করা একাধিক ভিন্ন পরিবার লোড করার চেয়ে বেশি কার্যকর।

UIFont ক্যাশিং

সিস্টেম তৈরি করা UIFont ইনস্ট্যান্স ক্যাশ করে, তাই UIFont.systemFont(ofSize: 16, weight: .regular)-এর বারবার কল একটি নতুন অবজেক্ট তৈরি করে না। তবে, কাস্টম ফন্টের জন্য UIFont(name:size:) সবসময় ক্যাশ করা হয় না — ফাইল থেকে পুনরায় লোড করা এড়াতে ঘন ঘন ব্যবহৃত ফন্ট স্ট্যাটিক প্রপার্টি বা NSCache-এ সংরক্ষণ করার সুপারিশ করা হয়।

অ্যাসিঙ্ক্রোনাস ফন্ট লোডিং

CTFontManagerRegisterGraphicsFont-এর মাধ্যমে ডায়নামিকভাবে ফন্ট নিবন্ধন করার সময়, ফন্ট ফাইল নেটওয়ার্ক থেকে ডাউনলোড করা হলে প্রক্রিয়াটি অ্যাসিঙ্ক্রোনাস হতে পারে। এই ক্ষেত্রে, UILabel বা UITextView-কে লোডিং সম্পূর্ণ না হওয়া পর্যন্ত একটি ফallback সিস্টেম ফন্ট প্রদর্শন করা উচিত। নিবন্ধনের পরে, ফন্ট উপলব্ধ হয় এবং স্ক্রিন স্বয়ংক্রিয়ভাবে টেক্সট ডিসপ্লে আপডেট করে।

সচরাচর জিজ্ঞাসিত প্রশ্ন

UIFont-কে CTFont-এ এবং পিছনে রূপান্তর করা যাবে কি?

হ্যাঁ, UIFont এবং CTFont toll-free bridging সমর্থন করে। রূপান্তর সরল কাস্টিং দ্বারা করা হয়: UIFont as CTFont বা CTFont as UIFont। কোনো ওভারহেড বা ডেটা কপি হয় না — উভয় ক্লাস মেমরিতে একই ফন্ট অবজেক্ট নির্দেশ করে।

UIKit-এ ব্যবহারের জন্য কোনটি পছন্দনীয়?

সমস্ত UI কম্পোনেন্টের জন্য, UIFont ব্যবহার করুন। এটি UIKit-এর জন্য অপ্টিমাইজ করা, Dynamic Type সমর্থন করে এবং সিস্টেম সেটিং পরিবর্তন হলে সঠিকভাবে স্কেল হয়। CTFont শুধুমাত্র Core Graphics-এর মাধ্যমে কাস্টম রেন্ডারিং বা নিম্ন-স্তরের ফন্ট মেট্রিক্স অ্যাক্সেসের প্রয়োজন হলে যুক্তিযুক্ত।

UIFont(name:size:)-এর জন্য ফন্টের নাম কীভাবে খুঁজে পাবেন?

পরিবারের তালিকার জন্য UIFont.familyNames এবং PostScript নামের জন্য UIFont.fontNames(forFamilyName:) ব্যবহার করুন। ডিবাগ মোডে এই কোড কল করুন এবং পছন্দসই ফন্ট খুঁজুন। PostScript নামে সাধারণত পরিবারের নাম এবং শৈলী থাকে: “SFProText-Regular”, “HelveticaNeue-Bold”।

UIFont কি ভেরিয়েবল ফন্ট সমর্থন করে?

হ্যাঁ, UIFontDescriptor-এর মাধ্যমে আপনি ভেরিয়েবল অক্ষ কনফিগার করতে পারেন: weight, width, slant। তবে, ভেরিয়েবল ফন্টের জন্য UIFont API CTFontCopyVariation-এর তুলনায় সীমিত। ভেরিয়েবল অক্ষের ওপর পূর্ণ নিয়ন্ত্রণের জন্য, Core Text এবং CTFontCreateCopyWithVariation ব্যবহার করুন।

UIFont কীভাবে সঠিকভাবে ক্যাশ করবেন?

নাম এবং আকারের সংমিশ্রণ থেকে কী সহ একটি স্ট্যাটিক অভিধান বা NSCache তৈরি করুন। সিস্টেম ফন্টের জন্য, iOS স্বয়ংক্রিয়ভাবে ইনস্ট্যান্স ক্যাশ করে, কিন্তু UIFont(name:size:)-এর মাধ্যমে তৈরি কাস্টম ফন্টের জন্য, TTF ফাইল থেকে পুনরায় লোড করা এড়াতে অ্যাপ ক্যাশে অবজেক্ট সংরক্ষণ করার সুপারিশ করা হয়।

সারসংক্ষেপ

  • UIFont — Dynamic Type সহ UI কম্পোনেন্টে ফন্টের জন্য উচ্চ-স্তরের UIKit ক্লাস
  • CTFont — রেন্ডারিং এবং গ্লিফ অ্যাক্সেসের জন্য নিম্ন-স্তরের Core Text টাইপ
  • UIFont তৈরি হয় systemFont, preferredFont বা UIFont(name:size:) এর মাধ্যমে
  • CTFont তৈরি হয় CTFontCreateWithName বা CTFontCreateWithDescriptor এর মাধ্যমে
  • Toll-free bridging UIFont এবং CTFont-এর মধ্যে বিনামূল্যে রূপান্তরের অনুমতি দেয়
  • Dynamic Type অ্যাক্সেসিবিলিটির জন্য প্রয়োজনীয়: preferredFont এবং adjustsFontForContentSizeCategory ব্যবহার করুন
  • UIKit-এর জন্য UIFont ব্যবহার করুন, কাস্টম রেন্ডারিংয়ের জন্য CTFont ব্যবহার করুন

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন