ios - क्या मैं एक आईफोन एप्लिकेशन में कस्टम फ़ॉन्ट एम्बेड कर सकता हूं?




cocoa-touch fonts (20)

यह प्रश्न आईओएस प्री-3.2 से संबंधित है। 3.2 के रूप में, यह कार्यक्षमता नीचे समवर्ती के उत्तर का उपयोग करके आसानी से प्राप्त करने योग्य है, और मैंने इसे प्रतिबिंबित करने के लिए स्वीकृत उत्तर (कमांड से समवर्मेट तक) बदल दिया है। मैं दोनों उत्तरों (अपवॉट्स के अलावा) को क्रेडिट नहीं दे सकता लेकिन वे दोनों अच्छे हैं।

मैं एक ऐप को पाठ प्रस्तुत करने, इसे लोड करने के लिए एक कस्टम फ़ॉन्ट शामिल करना चाहता हूं, और उसके बाद UILabel जैसे मानक UIKit तत्वों के साथ इसका उपयोग करना चाहता हूं। क्या यह संभव है?

मुझे नीचे दिए गए लिंक मिले:

लेकिन इन्हें मुझे प्रत्येक ग्लिफ को प्रस्तुत करने की आवश्यकता होगी, जो कि कड़ी मेहनत की तरह थोड़ा अधिक है, खासकर मल्टी-लाइन टेक्स्ट के लिए।

मुझे उन पदों को भी मिला है जो सीधे कहते हैं कि यह संभव नहीं है, लेकिन औचित्य के बिना, इसलिए मैं एक निश्चित उत्तर की तलाश में हूं।

संपादित करें - असफल -[UIFont fontWithName:size:] प्रयोग

मैंने Harrowprint.tff डाउनलोड किया ( here से डाउनलोड किया here ) और इसे मेरी संसाधन निर्देशिका और परियोजना में जोड़ा। मैंने फिर इस कोड की कोशिश की:

UIFont* font = [UIFont fontWithName:@"Harrowprint" size:20];

जिसके परिणामस्वरूप एक अपवाद फेंक दिया गया। फाइंडर में टीटीएफ फ़ाइल को देखते हुए पुष्टि हुई कि फ़ॉन्ट नाम हैरोप्रिंट था।

संपादित करें - अब तक कई उत्तरों रहे हैं जो मुझे एक्स या वाई पर प्रलेखन पढ़ने के लिए कहते हैं। मैंने इन सभी के साथ बड़े पैमाने पर प्रयोग किया है और कहीं भी नहीं मिला है। एक मामले में, एक्स केवल आईएस एक्स पर प्रासंगिक नहीं हुआ, आईफोन पर नहीं। नतीजतन, मैं इस प्रश्न के लिए एक बक्षीस निर्धारित कर रहा हूं, और मैं पहले व्यक्ति को बकाया राशि प्रदान करूंगा जो उत्तर प्रदान करता है (केवल दस्तावेज एपीआई का उपयोग करके) जो डिवाइस पर काम करने के लिए पर्याप्त जानकारी के साथ प्रतिक्रिया देता है। सिम्युलेटर पर काम करना भी एक बोनस होगा।

संपादित करें - ऐसा प्रतीत होता है कि उच्चतम वोटों के साथ जवाब के लिए बाउंटी ऑटो-पुरस्कार। दिलचस्प। किसी ने वास्तव में कोई जवाब नहीं दिया जिसने सवाल पूछा - समाधान जो आपके स्वयं के UILabel को कोडिंग करता है, शब्द-लपेट का समर्थन नहीं करता है, जो मेरे लिए एक आवश्यक विशेषता है - हालांकि मुझे लगता है कि मैं इसे करने के लिए इसे बढ़ा सकता हूं।


Swift, code way: (works also with swift 2.0)

Add the required fonts to your project (just like adding images, just drag to Xcode), make sure that they are targeted to your project
add this method and load custom fonts (recommended in appDelegate didFinishLaunchingWithOptions )

func loadFont(filePath: String) {

    let fontData = NSData(contentsOfFile: filePath)!

    let dataProvider = CGDataProviderCreateWithCFData(fontData)
    let cgFont = CGFontCreateWithDataProvider(dataProvider)!

    var error: Unmanaged<CFError>?
    if !CTFontManagerRegisterGraphicsFont(cgFont, &error) {
        let errorDescription: CFStringRef = CFErrorCopyDescription(error!.takeUnretainedValue())
        print("Unable to load font: %@", errorDescription, terminator: "")
    }

}

Use example:

if let fontPath = NSBundle.mainBundle().pathForResource("My-Font", ofType: "ttf"){
      loadFont(fontPath)
}

Use the font:

UIFont(name: "My-Font", size: 16.5)

Info.plist में "एप्लिकेशन द्वारा प्रदान किए गए फ़ॉन्ट" प्रविष्टि जोड़ें और फ़ॉन्ट नामों को स्ट्रिंग के रूप में शामिल करें:

Fonts provided by application
           Item 0        myfontname.ttf
           Item 1        myfontname-bold.ttf
           ...

फिर यह सुनिश्चित करने के लिए जांचें कि आपका फ़ॉन्ट चलकर शामिल है:

for (NSString *familyName in [UIFont familyNames]) {
    for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
         NSLog(@"%@", fontName);
    }
}

ध्यान दें कि आपका ttf फ़ाइल नाम वही नाम नहीं हो सकता है जिसका उपयोग आप अपने लेबल के लिए फ़ॉन्ट सेट करते समय करते हैं (आप "fontWithName" पैरामीटर प्राप्त करने के लिए उपरोक्त कोड का उपयोग कर सकते हैं):

[label setFont:[UIFont fontWithName:@"MyFontName-Regular" size:18]];

आईओएस 3.2 और ऊपर के लिए: उपरोक्त कई द्वारा प्रदान की गई विधियों का उपयोग करें, जो हैं:

  1. XCode में प्रोजेक्ट के संसाधन फ़ोल्डर में अपनी फ़ॉन्ट फ़ाइल (उदाहरण के लिए, Chalkduster.ttf ) जोड़ें।
  2. ओपन info.plist और UIAppFonts नामक एक नई कुंजी जोड़ें। इस कुंजी का प्रकार सरणी होना चाहिए।
  3. विस्तार (" Chalkduster.ttf ") सहित इस सरणी में अपना कस्टम फ़ॉन्ट नाम जोड़ें।
  4. अपने [UIFont fontWithName:@"Real Font Name" size:16] का प्रयोग करें।

लेकिन "असली फ़ॉन्ट नाम" हमेशा फ़ॉन्टबुक में दिखाई देने वाला नहीं होता है। सबसे अच्छा तरीका यह है कि अपने डिवाइस से पूछें कि कौन से फोंट देखता है और सटीक नाम क्या हैं।

मैं यूफॉन्ट-नाम-हथियार का उपयोग करता हूं: uifont-name-grabber

बस एक्सकोड प्रोजेक्ट में इच्छित फोंट को छोड़ दें, फ़ाइल नाम को अपनी प्लेलिस्ट में जोड़ें, और उस डिवाइस पर चलाएं जिसके लिए आप UIFont fontWithName: कर रहे हैं, यह UIFont fontWithName: उन नामों का उपयोग करके आपको एक पूर्ण फ़ॉन्ट सूची ईमेल करेगा।


आईओएस 3.2 और बाद में इसका समर्थन करते हैं। आईफोन ओएस 3.2 डॉक में व्हाट्स न्यू से सीधे:

कस्टम फ़ॉन्ट समर्थन
कस्टम फोंट का उपयोग करने वाले अनुप्रयोग अब उन फ़ॉन्ट्स को अपने एप्लिकेशन बंडल में शामिल कर सकते हैं और उन फोंट को सिस्टम के साथ पंजीकृत कर सकते हैं, जिसमें उनकी Info.plist फ़ाइल में UIAppFonts कुंजी शामिल है। इस कुंजी का मान एप्लिकेशन के बंडल में फ़ॉन्ट फ़ाइलों की पहचान करने वाले तारों की एक सरणी है। जब सिस्टम कुंजी को देखता है, तो यह निर्दिष्ट फोंट लोड करता है और उन्हें एप्लिकेशन में उपलब्ध कराता है।

एक बार फ़ॉन्ट्स Info.plist में सेट हो जाने के बाद, आप अपने कस्टम फोंट का उपयोग आईबी या प्रोग्रामेटिक रूप से किसी भी अन्य फ़ॉन्ट के रूप में कर सकते हैं।

ऐप्पल डेवलपर मंचों पर एक सतत धागा है:
https://devforums.apple.com/thread/37824 (लॉगिन आवश्यक)

और यहां यह प्राप्त करने के तरीके पर एक उत्कृष्ट और सरल 3 चरण ट्यूटोरियल है (टूटी हुई लिंक हटा दी गई है)

  1. संसाधन के रूप में एक्सकोड का उपयोग करके अपनी प्रोजेक्ट में अपनी कस्टम फ़ॉन्ट फ़ाइलों को जोड़ें
  2. UIAppFonts नामक आपकी Info.plist फ़ाइल में एक कुंजी जोड़ें।
  3. इस कुंजी को एक सरणी बनाओ
  4. आपके पास प्रत्येक फ़ॉन्ट के लिए, UIAppFonts सरणी के आइटम के रूप में अपनी फ़ॉन्ट फ़ाइल (एक्सटेंशन सहित) का पूरा नाम दर्ज करें
  5. Info.plist सहेजें
  6. अब आपके आवेदन में आप आसानी से [UIFont fontWithName:@"CustomFontName" size:12] को अपने [UIFont fontWithName:@"CustomFontName" size:12] साथ उपयोग करने के लिए कस्टम फ़ॉन्ट प्राप्त करने के लिए कॉल कर सकते हैं ...

साथ ही: सुनिश्चित करें कि फोंट आपके कॉपी बंडल संसाधनों में हैं।


इस चरण का पालन करें

1) अपने प्रोजेक्ट में अपने फ़ॉन्ट की प्रतिलिपि बनाएँ

2) स्रोत कोड मोड में अपनी .plist फ़ाइल खोलें ... (नोट- जानकारी खोलें info.plist )

3) इससे पहले - अपने फ़ॉन्ट पर राइट क्लिक करें और इसे फ़ॉन्टफोर्ज या इसी तरह के एडिटर में खोलें और इसे अपने सिस्टम में install करें, इसे install किया जाना चाहिए

4) इसे टाइप करें

 <key>UIAppFonts</key>
<array>
    <string>MyriadPro.otf</string>
</array>

5) इस कोड को अपनी class .m में टाइप करें। class .m

 [lblPoints setFont:[UIFont fontWithName:@"Myriad Pro" size:15.0]];

यहां आपके UILabel रूप में lblPoints बदल जाएगा

किया हुआ!! यदि अभी भी आपका फ़ॉन्ट काम नहीं करता है, तो पहले अपने फोंट संगतता की जांच करें


एक महत्वपूर्ण नोटिस: आपको फ़ॉन्ट से जुड़े "पोस्टस्क्रिप्ट नाम" का उपयोग करना चाहिए, न कि उसका पूरा नाम या पारिवारिक नाम। यह नाम अक्सर फ़ॉन्ट के सामान्य नाम से अलग हो सकता है।


चरण-दर-चरण निर्देश यहां दिए गए हैं। अतिरिक्त पुस्तकालय या किसी विशेष कोडिंग की आवश्यकता नहीं है।

shang-liang.com/blog/custom-fonts-in-ios4

अधिकांश समय यह मुद्दा फ़ॉन्ट के साथ नहीं है। ऐसा करने का सबसे अच्छा तरीका एक फ़ॉन्ट का उपयोग करना है जो सुनिश्चित करने के लिए वर्डाना या भूगोल की तरह काम करेगा। फिर इच्छित फ़ॉन्ट में बदलें। यदि यह काम नहीं करता है, तो शायद फ़ॉन्ट का नाम सही नहीं है, या फ़ॉन्ट एक अच्छी तरह से बना फ़ॉन्ट नहीं है।


बेहतर समाधान एक नई संपत्ति " Fonts provided by application " को अपनी info.plist फ़ाइल में जोड़ना है।

फिर, आप सामान्य UIFont जैसे अपने कस्टम फ़ॉन्ट का उपयोग कर सकते हैं।


मैं यहां अपने पसंदीदा लघु ट्यूटोरियल में से एक का पालन करने की अनुशंसा करता हूं: http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/ जिससे यह जानकारी आती है।

चरण 1 - अपने प्रोजेक्ट में फाइंडर से अपना .ttf या .otf खींचें

नोट - अपने मुख्य एप्लिकेशन लक्ष्य पर 'लक्ष्य में जोड़ें' के लिए बॉक्स पर क्लिक करना सुनिश्चित करें

यदि आप इसे अपने लक्ष्य में जोड़ने के लिए क्लिक करना भूल गए हैं तो अपने प्रोजेक्ट पदानुक्रम में फ़ॉन्ट फ़ाइल पर क्लिक करें और दाएं तरफ पैनल पर लक्ष्य सदस्यता अनुभाग में मुख्य ऐप लक्ष्य पर क्लिक करें

यह सुनिश्चित करने के लिए कि आपके फ़ॉन्ट आपके ऐप लक्ष्य का हिस्सा हैं, सुनिश्चित करें कि वे बिल्ड पेस में आपके कॉपी बंडल संसाधनों में दिखाई दें

चरण 2 - अपनी फ़ाइल में फ़ॉन्ट फ़ाइल नाम जोड़ें

अपने जानकारी अनुभाग में कस्टम आईओएस लक्ष्य गुणों पर जाएं और Fonts provided by application नामक उस अनुभाग में आइटम्स में एक कुंजी जोड़ें (आपको इसे टाइप करने के रूप में इसे एक विकल्प के रूप में देखना चाहिए और यह स्वयं को सरणी के रूप में सेट कर देगा। सरणी आइटम खोलने के लिए छोटे तीर पर क्लिक करें और .ttf या .otf फ़ाइलों के नामों में टाइप करें जिन्हें आपने अपने ऐप को यह बताने के लिए जोड़ा है कि ये वे फ़ॉन्ट फ़ाइलें हैं जिन्हें आप उपलब्ध करना चाहते हैं

नोट - यदि आपका ऐप इस चरण के ठीक बाद दुर्घटनाग्रस्त हो जाता है तो अपने द्वारा यहां जोड़े गए आइटमों पर अपनी वर्तनी जांचें

चरण 3 - अपने फ़ॉन्ट्स के नाम खोजें ताकि आप उन्हें कॉल कर सकें

प्रायः आपके एप्लिकेशन द्वारा देखी गई फ़ॉन्ट का नाम उस फ़ॉन्ट के लिए फ़ाइल नाम पर आधारित होता है, जो इसे आपके कोड में रखता है और लॉग को देखता है कि आपका एप्लिकेशन यह देखने के लिए बनाता है कि आपके कोड में कौन सा फ़ॉन्ट नाम कॉल करना है

तीव्र

for family: String in UIFont.familyNames(){
  print("\(family)")
  for names: String in UIFont.fontNamesForFamilyName(family){
      print("== \(names)")
  }
}

उद्देश्य सी

for (NSString* family in [UIFont familyNames]){
    NSLog(@"%@", family);
    for (NSString* name in [UIFont fontNamesForFamilyName: family]){
        NSLog(@"  %@", name);
    }
}

आपका लॉग इस तरह कुछ दिखना चाहिए:

चरण 4 - चरण 3 से नाम का उपयोग करके अपने नए कस्टम फ़ॉन्ट का उपयोग करें

तीव्र

 label.font = UIFont(name: "SourceSansPro-Regular", size: 18)

उद्देश्य सी

 label.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:18];

मैंने इस पृष्ठ पर कुछ सलाह दी है जो आईओएस 5 पर मेरे लिए काम करता है।

सबसे पहले, आपको अपनी परियोजना में कस्टम फ़ॉन्ट जोड़ना होगा। फिर, आपको @iPhoneDev की सलाह का पालन करना होगा और फ़ॉन्ट को अपनी info.plist फ़ाइल में जोड़ना होगा।

ऐसा करने के बाद, यह काम करता है:

UIFont *yourCustomFont = [UIFont fontWithName:@"YOUR-CUSTOM-FONT-POSTSCRIPT-NAME" size:14.0];
[yourUILabel setFont:yourCustomFont];

हालांकि, आपको अपने फ़ॉन्ट के पोस्टस्क्रिप्ट नाम को जानने की आवश्यकता है। जब आप फ़ॉन्टबुक में हों तो बस @ डैनियल वुड की सलाह और प्रेस कमांड का पालन करें।

फिर, अपने कस्टम फ़ॉन्ट का आनंद लें।


यदि आप xcode 4.3 का उपयोग कर रहे हैं, तो आपको कस्टम Copy Bundle Resources एक्सकोड 4.3 में https://.com/users/1292829/arne अनुसार Copy Bundle Resources तहत Build Phase में font जोड़ना होगा। यह मेरे लिए काम करता है, यहां मेरे कदमों में कस्टम फोंट के लिए किए गए कदम हैं:

  1. अपनी परियोजना में फ़ॉन्ट जोड़ें। मैंने OTF (या TTF ) फ़ाइलों को एक नए समूह में खींचा और गिरा दिया जिसे मैंने बनाया था और copying the files over to the project folder की copying the files over to the project folder xcode की पसंद को स्वीकार कर लिया था।
  2. सरणी के भीतर वस्तुओं के रूप में सूचीबद्ध अपने फ़ॉन्ट्स के साथ UIAppFonts सरणी बनाएं। सिर्फ names , एक्सटेंशन नहीं (उदाहरण के लिए " GothamBold ", " GothamBold-Italic ")।
  3. स्क्रीन के बाईं ओर Project Navigator के शीर्ष पर project name रास्ते पर क्लिक करें।
  4. एक्सकोड के मुख्य क्षेत्र में दिखाई देने वाले Build Phases टैब पर क्लिक करें।
  5. " Copy Bundle Resources " अनुभाग का विस्तार करें और फ़ॉन्ट जोड़ने के लिए "+" पर क्लिक करें।
  6. फ़ाइल नेविगेटर से फ़ॉन्ट फ़ाइल का चयन करें जो "+" पर क्लिक करते समय खुलता है।
  7. add to the project जो भी फ़ॉन्ट add to the project

यह अभी तक बाहर नहीं है, लेकिन कोकोस 2 डी (2 डी गेम फ्रेमवर्क) का अगला संस्करण वैरिएबल लम्बाई बिटमैप फोंट को चरित्र मानचित्र के रूप में समर्थन देगा।

http://code.google.com/p/cocos2d-iphone/issues/detail?id=317

लेखक के पास इस संस्करण के लिए रिलीज की तारीख नहीं है, लेकिन मैंने एक पोस्टिंग देखी जो संकेत दिया कि यह अगले महीने या दो में होगा।


सबसे पहले अपने संसाधनों में .odt प्रारूप में फ़ॉन्ट जोड़ें, इस मामले में हम DINEngschriftStd.otf का उपयोग करेंगे, फिर लेबल को फ़ॉन्ट असाइन करने के लिए इस कोड का उपयोग करें

[theUILabel setFont:[UIFont fontWithName:@"DINEngschriftStd" size:21]];

यह सुनिश्चित करने के लिए कि प्रोजेक्ट पर आपका फ़ॉन्ट लोड हो गया है, बस कॉल करें

NSLog(@"Available Font Families: %@", [UIFont familyNames]);

.plist पर आपको फ़ॉन्ट घोषित करना होगा। बस 'एप्लिकेशन द्वारा प्रदान किए गए फ़ॉन्ट' रिकॉर्ड जोड़ें और फ़ॉन्ट के नाम से एक आइटम 0 स्ट्रिंग जोड़ें (DINEngschriftStd.otf)


हां, आप कस्टम फोंट शामिल कर सकते हैं। fontWithName:size: विशेष रूप से, fontWithName:size: विधि पर प्रलेखन का संदर्भ लें।

1) सुनिश्चित करें कि आप अपने संसाधन फ़ोल्डर में फ़ॉन्ट शामिल हैं।

2) फ़ॉन्ट का "नाम" जरूरी नहीं है कि फ़ाइल नाम।

3) सुनिश्चित करें कि आपके पास उस फ़ॉन्ट का उपयोग करने का कानूनी अधिकार है। इसे अपने ऐप में शामिल करके, आप इसे भी वितरित कर रहे हैं, और आपको ऐसा करने का अधिकार होना चाहिए।


iOS 8 + और Xcode 6 + के साथ आप इसे आसानी से बना सकते हैं। यहां दिए गए कदम हैं:

1) अपने फ़ॉन्ट को Xcode सपोर्टिंग फाइल फ़ोल्डर में खींचें और छोड़ें। लक्ष्य ऐप में जोड़ें पर अपना ऐप चिह्नित करना न भूलें। इस पल से आप इस फ़ॉन्ट का उपयोग IB में कर सकते हैं और इसे फ़ॉन्ट फलेट से चुन सकते हैं।

2) इस फ़ॉन्ट को अपने डिवाइस में उपलब्ध कराने के लिए, अपनी info.plist खोलें और Fonts provided by application कुंजी Fonts provided by application जोड़ें। इसमें आइटम 0 कुंजी होगी, आपको अपना फ़ॉन्ट नाम मान के रूप में जोड़ना होगा। फ़ॉन्ट का नाम आपके फ़ॉन्ट फ़ाइल नाम से भिन्न हो सकता है। लेकिन सबसे पहले, इस काम के ज्यादातर मामलों में अपना फ़ाइल नाम जोड़ने का प्रयास करें।

यदि नहीं, तो इस लेख ने हमेशा मेरी मदद की।

इस आलेख से कोड का तेज़ स्निपेट यहां आपको अपना फ़ॉन्ट नाम ढूंढने में मदद करने के लिए है।

func allFonts(){

   for family in UIFont.familyNames(){

       println(family)


       for name in UIFont.fontNamesForFamilyName(family.description)
       {
           println("  \(name)")
       }

   }

}

संपादित करें

मैं उल्लेख करना चाहता हूं कि आपको अपने लक्ष्य के निर्माण चरणों , प्रतिलिपि बंडल संसाधनों में फ़ॉन्ट फ़ाइलों को जोड़ने की आवश्यकता है। इसके बिना, आप डिवाइस पर अपना फ़ॉन्ट नहीं देखेंगे। और यह अप्रत्याशित व्यवहार का कारण बन सकता है।

उदाहरण के लिए, मुझे एक bug सामना करना पड़ता है, जब UITextField पास कस्टम फ़ॉन्ट होता है, लेकिन यह फ़ॉन्ट कॉपी बंडल संसाधनों में नहीं था। और जब मैं इस viewcontroller साथ व्यू कंट्रोलर को सीगू करता हूं, तो viewDidLoad फ़ंक्शन को कॉल करने से पहले 4 सेकंड में देरी होती है। फ़ॉन्ट परेशानियों को हल करने से इस देरी को हटा दिया गया। तो, इसे दो बार जांचने की सलाह दें। (rdar: // 20028250) बीटीडब्ल्यू, मैं बग को पुन: उत्पन्न करने में सक्षम नहीं था, लेकिन मुझे यकीन है कि समस्या फ़ॉन्ट के साथ थी।


आईओएस 4 में कस्टम फोंट का उपयोग करने का एक आसान तरीका है।

  1. XCode में प्रोजेक्ट के संसाधन फ़ोल्डर में अपनी फ़ॉन्ट फ़ाइल (उदाहरण के लिए, Chalkduster.ttf ) जोड़ें।
  2. ओपन info.plist और UIAppFonts नामक एक नई कुंजी जोड़ें। इस कुंजी का प्रकार सरणी होना चाहिए।
  3. विस्तार ( Chalkduster.ttf ) सहित इस सरणी में अपना कस्टम फ़ॉन्ट नाम जोड़ें।
  4. अब आप अपने [UIFont fontWithName:@"Chalkduster" size:16] का उपयोग कर सकते हैं।

दुर्भाग्य से, आईबी कस्टम फोंट के साथ लेबल शुरू करने की अनुमति नहीं देता है। इस समस्या को हल करने के लिए इस प्रश्न को देखें। मेरा पसंदीदा समाधान कस्टम UILabel उप UILabel का उपयोग करना है:

@implementation CustomFontLabel

- (id)initWithCoder:(NSCoder *)decoder
{
    if (self = [super initWithCoder: decoder])
    {
        [self setFont: [UIFont fontWithName: @"Chalkduster" size: self.font.pointSize]];
    }
    return self;
}

@end

संपादित करें: यह उत्तर आईओएस 3.2 के रूप में निष्क्रिय है; UIAppFonts का उपयोग करें

कस्टम UIFont एस को सफलतापूर्वक लोड करने में सक्षम होने का एकमात्र तरीका निजी ग्राफिक्स सर्विसेज फ्रेमवर्क के माध्यम से है।

निम्नलिखित एप्लिकेशन के मुख्य बंडल में सभी .ttf फोंट लोड होंगे:

BOOL GSFontAddFromFile(const char * path);
NSUInteger loadFonts()
{
    NSUInteger newFontCount = 0;
    for (NSString *fontFile in [[NSBundle mainBundle] pathsForResourcesOfType:@"ttf" inDirectory:nil])
        newFontCount += GSFontAddFromFile([fontFile UTF8String]);
    return newFontCount;
}

एक बार फोंट लोड हो जाने पर, उनका उपयोग ऐप्पल द्वारा प्रदान किए गए फ़ॉन्ट्स की तरह ही किया जा सकता है:

NSLog(@"Available Font Families: %@", [UIFont familyNames]);
[label setFont:[UIFont fontWithName:@"Consolas" size:20.0f]];

भविष्य में एपीआई गायब होने पर ग्राफिक्स सर्विसेज को रनटाइम पर भी लोड किया जा सकता है:

#import <dlfcn.h>
NSUInteger loadFonts()
{
    NSUInteger newFontCount = 0;
    NSBundle *frameworkBundle = [NSBundle bundleWithIdentifier:@"com.apple.GraphicsServices"];
    const char *frameworkPath = [[frameworkBundle executablePath] UTF8String];
    if (frameworkPath) {
        void *graphicsServices = dlopen(frameworkPath, RTLD_NOLOAD | RTLD_LAZY);
        if (graphicsServices) {
            BOOL (*GSFontAddFromFile)(const char *) = dlsym(graphicsServices, "GSFontAddFromFile");
            if (GSFontAddFromFile)
                for (NSString *fontFile in [[NSBundle mainBundle] pathsForResourcesOfType:@"ttf" inDirectory:nil])
                    newFontCount += GSFontAddFromFile([fontFile UTF8String]);
        }
    }
    return newFontCount;
}

Although some of the answers above are correct, I have written a detailed visual tutorial for people still having problems with fonts.

The solutions above which tell you to add the font to the plist and use

[self.labelOutlet setFont:[UIFont fontWithName:@"Sathu" size:10]];

are the correct ones. Please do now use any other hackish way. If you are still facing problems with finding font names and adding them, here is the tutorial -

Using custom fonts in ios application


One-liner for Swift 3+ for printing out all font names:

UIFont.familyNames.forEach { print(UIFont.fontNames(forFamilyName: $0)) }

You can add the required "FONT" files within the resources folder. Then go to the Project Info.plist file and use the KEY "Fonts provided by the application" and value as "FONT NAME".

Then you can call the method [UIFont fontwithName:@"FONT NAME" size:12];








fonts