दिलचस्प पोस्ट
SBStatusBarController उदाहरण आईओएस 7 पर UINavigationController में कड़ी चोट इशारा को अक्षम कैसे करें I नोड में एक फ़ाइल को कैसे जोड़ें? PHP – स्ट्रिंग में वैरिएबल सम्मिलित या सीधे सम्मिलित करें एक ही पृष्ठ में JQuery और प्रोटोटाइप का उपयोग करना LinkedHashMap को छंटनी अवतरणों के बिना ऑब्जेक्ट कीज़ और उद्धरण चिह्नों के बीच क्या अंतर है? Segue आईओएस 8 में काम नहीं खोलना जावा में रिवर्स हैशम कुंजीप और मान सीएसएस रूपांतरण इनलाइन तत्वों पर काम नहीं करता है मेरे दृश्य नियंत्रक में आईओएस 7 लंबन प्रभाव किसी सूची में डुप्लिकेट ढूंढें और सूचीबद्ध करें? एएसपी.नेट में नियंत्रण पाने का बेहतर तरीका कार्य प्रदाता को साझा करने के लिए कार्य प्रदाता को डालने में असमर्थ निर्देशों के बीच कोणीय जेएस संचार

आईओएस ऐप को उनके वास्तविक नामों को खोजने के लिए कस्टम फोंट जोड़ना

मेरे ऐप का इस्तेमाल करने के लिए मेरे पास दो फोंट हैं I

यहां फ़ॉन्ट चित्र हैं वर्तमान में फाइलों को नामित किया गया है

name.font = [UIFont fontWithName:@"Helvetica Neue LT Pro-Medium" size:10]; headline.font = [UIFont fontWithName:@"Helvetica Neue LT Pro-Light" size:8]; 

Font Avaliable option in plist file समान नाम डालना।

मैंने भी जैसे फाइल नाम जोड़ने की कोशिश की है

 HelveticaNeueLTPro-Lt HelveticaNeueLTPro-Md 

लेकिन कुछ भी काम करने के लिए नहीं लगता है मैं फोंट का सटीक नाम कैसे प्राप्त करूं?

यहां छवि विवरण दर्ज करें

Solutions Collecting From Web of "आईओएस ऐप को उनके वास्तविक नामों को खोजने के लिए कस्टम फोंट जोड़ना"

सिस्टम में जाने वाले सभी फ़ॉन्ट परिवार नामों की सूची के लिए +[UIFont familyNames] परिवार के नाम +[UIFont familyNames] का उपयोग करें प्रत्येक परिवार के नाम के लिए, आप तब सिस्टम का ज्ञात सभी फ़ॉन्ट नामों की सूची के लिए +[UIFont fontNamesForFamilyName:] का उपयोग कर सकते हैं। सिस्टम को किस नाम की उम्मीद है यह देखने के लिए उनको प्रिंट करने का प्रयास करें उदाहरण कोड:

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

इसे अपने ऐप में रखें, इसे कॉल करें और देखें कि आपको क्या मिलता है। यदि आप अपने फॉन्ट के लिए उपयुक्त दिखने वाले आउटपुट में एक नाम देखते हैं, तो इसका उपयोग करें अन्यथा, शायद आपने अपने ऐप के लिए फ़ॉन्ट ठीक से नहीं जोड़ा है

इस के लिए कदम है, कैसे अनुप्रयोग में कस्टम फ़ॉन्ट जोड़ने के लिए।

1 – अपने आवेदन में .TTF फ़ॉन्ट जोड़ें
2 – application-info.plist file संशोधित करें।
3 – एक नई पंक्ति में कुंजी "एप्लिकेशन द्वारा दिए गए फ़ॉन्ट्स" जोड़ें
4 – और प्रत्येक .TTF प्रत्येक .TTF फ़ाइल (फ़ॉन्ट का) जोड़ें।

अपने ज्ञान को बेहतर बनाने के लिए यह और यह ट्यूटोरियल भी पढ़ें।

अधिक जानकारी के लिए :

लेकिन आपके आवेदन में फ़ॉन्ट जोड़ने के बाद, कभी-कभी फ़ॉन्ट का नाम फ़ाइल नाम का नाम नहीं है, इसलिए आपको अपने फ़ॉन्ट का वास्तविक नाम लिखने / लिखने की आवश्यकता है, इसलिए एनएसजीओडी के उत्तर की जांच करें।

सिस्टम से सभी फोंट ढूंढने के लिए निम्नलिखित कोड है:

 for(NSString *fontfamilyname in [UIFont familyNames]) { NSLog(@"Family:'%@'",fontfamilyname); for(NSString *fontName in [UIFont fontNamesForFamilyName:fontfamilyname]) { NSLog(@"\tfont:'%@'",fontName); } NSLog(@"~~~~~~~~"); } 

हो सकता है ऊपर कदम और सुझाव आपके मामले में उपयोगी है:

यद्यपि ऐसा प्रतीत होता है कि fontNamed:size: विधि आपके द्वारा प्रदान किए जाने वाले नामों के साथ काफी क्षमा कर रहे हैं, आधिकारिक fontName हमेशा फ़ॉन्ट के आंतरिक पोस्टस्क्रिप्ट नाम से रहा है। फ़ॉन्ट के पोस्टस्क्रिप्ट नाम में रिक्त स्थान नहीं हो सकते हैं और आमतौर पर उन्हें एक हाइफ़न द्वारा प्रतिस्थापित किया जा सकता है। मुझे कुछ याद नहीं है, लेकिन मेरा मानना ​​है कि वे 31 वर्णों तक भी सीमित हो सकते हैं।

निर्धारित करना कि आपको कोड में कौन से नाम का उपयोग करना चाहिए, यह बहुत आसान है। फॉन्ट बुक में इसे खोलने के लिए अपने आईओएस डिवाइस पर उपयोग करने के लिए फ़ॉन्ट पर डबल क्लिक करें। यदि फ़ॉन्ट पहले से इंस्टॉल नहीं है, तो प्रकट होने वाले नमूना विंडो में इंस्टॉल करें बटन पर क्लिक करें। जब इसे स्थापित किया गया है, फ़ॉन्ट सूची में फ़ॉन्ट चुनें। फ़ॉन्ट बुक के मेनू में, पूर्वावलोकन> फ़ॉन्ट जानकारी दिखाएँ चुनें। इससे नीचे दिए गए चित्र में दिखाए गए फ़ॉन्ट के बारे में जानकारी दिखाई जाएगी:

यहां छवि विवरण दर्ज करें

जैसा कि आप देख सकते हैं, Helvetica Neue LT Std 65 Medium लिए पोस्टस्क्रिप्ट नाम Helvetica Neue LT Std 65 Medium HelveticaNeueLTStd-Md । वह नाम है जिसे आपको कोड में उपयोग करना चाहिए।

आपकी Info.plist फ़ाइल में, एप्लिकेशन के लिए फोंट्स के अंतर्गत, आपको फॉन्ट के वास्तविक फ़ाइल नाम का उपयोग करना होगा, जो कुछ भी ऐसा होता है मेरे मामले में, यह HelveticaNeueLTStd-Md.otf

फ़ॉन्ट का नाम प्राप्त करने का आसान तरीका

  1. अपनी .ttf / .otf फ़ाइल पर राइट-क्लिक करें और "जानकारी प्राप्त करें" चुनें
  2. Full Name संपत्ति पढ़ें और फ़ॉन्ट के नाम के रूप में इसका इस्तेमाल करें

यह जानकारी .plist फ़ाइल ( एक्सटेंशन को जोड़कर ) में और [UIFont fontWithName:<Full Name> size:17] के साथ कोड में काम करता है।

बस एनएसएलॉग फ़ॉन्ट आप चाहते हैं:

NSLog(@" %@", [UIFont fontNamesForFamilyName:@"American Typewriter"]);

और आप सरणी पाएं:

 ( "AmericanTypewriter-CondensedLight", "AmericanTypewriter-Light", "AmericanTypewriter-Bold", AmericanTypewriter, "AmericanTypewriter-CondensedBold", "AmericanTypewriter-Condensed" ) 

किसी भी फ़ॉन्ट नाम के रूप में AmericanTypewriter-Bold [UIFont fontWithName:@"AmericanTypewriter-Bold" size:12.0] AmericanTypewriter-Bold [UIFont fontWithName:@"AmericanTypewriter-Bold" size:12.0] किसी भी प्रकार का उपयोग करें

इसके अलावा आप फॉन्ट फैमिली द्वारा समूहीकृत सभी एप्लीकेशियल फोंट्स प्राप्त कर सकते हैं

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

मैं सिर्फ कुछ फोंट नाम मुद्रित करने के लिए कुछ कोड लिखूंगा, जिसे आप चाहते हैं, न कि सभी फ़ॉन्ट्स को प्रिंट करें।

 - (NSString *)realNameOfFont:(NSString *)fullFontName { NSString *fontName = [[fullFontName componentsSeparatedByString:@"."] firstObject]; NSString *ext = [fullFontName pathExtension]; NSData *data = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:fontName ofType:ext]]; if (data == nil) { NSLog(@"Failed to load font. Data at path %@ is null", fullFontName); return nil; } CFErrorRef errorRef; CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)data); CGFontRef font = CGFontCreateWithDataProvider(provider); NSString *realFontName = (__bridge NSString *)CGFontCopyPostScriptName(font); if (!CTFontManagerRegisterGraphicsFont(font, &errorRef)) { NSError *error = (__bridge NSError *)errorRef; if (error.code != kCTFontManagerErrorAlreadyRegistered) { NSLog(@"Failed to load font: %@", error); } } NSLog(@"Real font name: %@", realFontName); CFRelease(font); CFRelease(provider); return realFontName; } 

उदाहरण:

  NSArray *fonts = @[@"bg_en_AmaticSC-Bold111.otf", @"bg_en_segoescb_0.ttf", @"bg_en_UTM Cookies_2.ttf", @"bg_en_VSCOProximaExtrabold_0.otf"]; for (NSString *fontFullName in fonts) { [self realNameOfFont:fontFullName]; } 

परिणाम:

 Failed to load font. Data at path bg_en_AmaticSC-Bold111.otf is null Real font name: SegoeScript-Bold Real font name: UTM-Cookies Real font name: ProximaNova-Extrabld 

अन्य जवाबों में कुछ भी गलत नहीं है वास्तव में iPatel की पूर्वापेक्षाएं लागू होती हैं।

स्विफ्ट 2.2+ में, परिवार के नाम दिखाने के लिए बस कॉल है:

  UIFont.familyNames().sort().forEach({ (familyName) in debugPrint(UIFont.fontNamesForFamilyName(familyName)) }) 

यदि आपने अपने सिस्टम पर फोंट स्थापित किए हैं, तो आप स्टोरीबोर्ड में अपने यूआई एन्टेंट में बस फोंट जोड़ सकते हैं।

ध्यान दें

हालांकि, मैंने कुछ मामलों में एक बग देखा है, जहां फ़ॉंट को स्टोरीबोर्ड में प्रोजेक्ट, जानकारी। प्लिस्ट और UI तत्वों को ठीक से जोड़ने के बाद, वे अब भी आपके वांछित परिवर्तनों को ठीक से प्रदर्शित नहीं करते हैं। कुछ मामलों में सेटिंग टॉल करने से स्टोरीबोर्ड सिंक की मदद से यह अंतर्निहित XML है। अन्य मामलों में आपको अपने कस्टम फ़ॉन्ट के आकार को कोड में बदलना पड़ सकता है ताकि परिवर्तन प्रभावी हो सके। मुझे लगता है कि स्विफ्ट में सबसे आसान तरीका यह है:

 @IBOutlet weak var startMessage: UILabel! startMessage.font = UIFont(name: startMessage.font.familyName, size: 31.0) 

जो मानता है कि कस्टम फ़ॉन्ट पहले से ही स्टोरीबोर्ड में सेट है और बस कोड में आकार अपडेट करता है। यह समाधान यह सुनिश्चित करेगा कि यदि अन्य सभी आवश्यक शर्तें पूरी हो जाएं तो आप वास्तव में सही कस्टम टाइपफ़ेस देख सकते हैं। यह वास्तव में अंतर्निहित फ़ॉन्ट का नाम जानना आवश्यक है (यद्यपि यदि ऊपर दिए गए प्रारंभिक स्विफ्ट कोड को वांछित किया गया है तो आपको नाम दिया जाएगा)।

स्विफ्ट संस्करण:

 static func printAllFontNames() { for familyname in UIFont.familyNames() { for fname in UIFont.fontNamesForFamilyName(familyname) { print(fname) } } } 

स्विफ्ट 3 संस्करण:

 UIFont.familyNames.sorted().forEach({ (familyName) in print(UIFont.fontNames(forFamilyName: familyName)) }) 

तेज 3 के लिए अपडेट

 for familyname in UIFont.familyNames { for fname in UIFont.fontNames(forFamilyName: familyname) { print(fname) } }