मैं चाहूंगा कि एक ऐप में टेक्स्ट रेंडर करने के लिए एक कस्टम फॉन्ट शामिल हो, उसे लोड करें और फिर UIKit
जैसे स्टैंडर्ड एलिमेंट्स के साथ उसका इस्तेमाल करें UILabel
। क्या यह संभव है?
मैं चाहूंगा कि एक ऐप में टेक्स्ट रेंडर करने के लिए एक कस्टम फॉन्ट शामिल हो, उसे लोड करें और फिर UIKit
जैसे स्टैंडर्ड एलिमेंट्स के साथ उसका इस्तेमाल करें UILabel
। क्या यह संभव है?
जवाबों:
iOS 3.2 और बाद में इसका समर्थन करते हैं। सीधे से iPhone OS 3.2 में नया क्या है दस्तावेज़:
कस्टम फॉन्ट सपोर्ट
एप्लिकेशन जो कस्टम फॉन्ट का उपयोग करना चाहते हैं, अब उन फोंस को अपने एप्लिकेशन बंडल में शामिल कर सकते हैं और उन फोंट को सिस्टम में पंजीकृत कर सकते हैं जिसमें उनकी Info.plist फ़ाइल में UIAppFonts कुंजी शामिल है। इस कुंजी का मान अनुप्रयोग के बंडल में फ़ॉन्ट फ़ाइलों की पहचान करने वाले स्ट्रिंग की एक सरणी है। जब सिस्टम कुंजी को देखता है, तो यह निर्दिष्ट फोंट को लोड करता है और उन्हें एप्लिकेशन को उपलब्ध कराता है।
एक बार जब फोंट सेट कर लिया जाता है Info.plist
, तो आप अपने कस्टम फोंट का उपयोग आईबी या प्रोग्रामिक रूप से किसी भी अन्य फॉन्ट के रूप में कर सकते हैं।
Apple डेवलपर फ़ोरम पर एक थ्रेड चल रहा है:
https://devforums.apple.com/thread/37824 (लॉगिन आवश्यक)
और यहां एक उत्कृष्ट और सरल 3 चरणों का ट्यूटोरियल है कि इसे कैसे प्राप्त किया जाए (टूटी लिंक हटा दी गई)
Info.plist
फ़ाइल में एक कुंजी जोड़ें UIAppFonts
।UIAppFonts
सरणी में आइटम के रूप में अपनी फ़ॉन्ट फ़ाइल (एक्सटेंशन सहित) का पूरा नाम दर्ज करेंInfo.plist
[UIFont fontWithName:@"CustomFontName" size:12]
अपने UILabels और UITextViews , आदि के साथ उपयोग करने के लिए कस्टम फ़ॉन्ट प्राप्त करने के लिए कॉल कर सकते हैं ...इसके अलावा: सुनिश्चित करें कि फोंट आपके कॉपी बंड संसाधनों में हैं।
संपादित करें: iOS 3.2 के रूप में, यह कार्यक्षमता अंतर्निहित है। यदि आपको पूर्व 3.2 का समर्थन करने की आवश्यकता है, तो आप अभी भी इस समाधान का उपयोग कर सकते हैं।
मैंने एक सरल मॉड्यूल बनाया है जो UILabel
लोड हो रहा है। मैंने इसे अपाचे लाइसेंस के तहत ओपनसोर्स जारी किया और इसे गीथब हियर पर डाल दिया ।
महत्वपूर्ण फ़ाइलें हैं FontLabel.h
और FontLabel.m
।
यह जेनेरिक के जवाब से कुछ कोड का उपयोग करता है ।
या
संसाधनों में अपनी फ़ॉन्ट फ़ाइल की प्रतिलिपि बनाएँ
Info.plist
UIAppFonts नामक आपकी फ़ाइल में एक कुंजी जोड़ें । ("आवेदन द्वारा प्रदान की गई फ़ॉन्ट्स)
इस कुंजी को एक सरणी बनाएं
आपके पास प्रत्येक फ़ॉन्ट के लिए, UIAppFonts सरणी में आइटम के रूप में अपनी फ़ॉन्ट फ़ाइल (एक्सटेंशन सहित) का पूरा नाम दर्ज करें
सहेजें Info.plist
अब अपने आवेदन में आप बस [UIFont fontWithName:@"CustomFontName" size:15]
अपने UILabels
और UITextViews
, आदि के साथ उपयोग करने के लिए कस्टम फ़ॉन्ट प्राप्त करने के लिए कॉल कर सकते हैं ...
IOS 4 में कस्टम फोंट का उपयोग करने का एक सरल तरीका है ।
Chalkduster.ttf
) जोड़ें ।info.plist
एक नई कुंजी खोलें और खोलें UIAppFonts
। इस कुंजी का प्रकार सरणी होना चाहिए।Chalkduster.ttf
) सहित इस सरणी में अपना कस्टम फ़ॉन्ट नाम जोड़ें ।[UIFont fontWithName:@"Chalkduster" size:16]
अपने आवेदन में उपयोग कर सकते हैं ।दुर्भाग्य से, आईबी कस्टम फोंट के साथ लेबल को इनिशियलाइज़ करने की अनुमति नहीं देता है। इस समस्या को हल करने के लिए यह प्रश्न देखें । मेरा पसंदीदा समाधान कस्टम UILabel
उपवर्ग का उपयोग करना है :
@implementation CustomFontLabel
- (id)initWithCoder:(NSCoder *)decoder
{
if (self = [super initWithCoder: decoder])
{
[self setFont: [UIFont fontWithName: @"Chalkduster" size: self.font.pointSize]];
}
return self;
}
@end
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]];
संपादित करें: यह उत्तर iOS3.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;
}
एक बार फोंट लोड होने के बाद, उन्हें Apple द्वारा प्रदान किए गए फोंट की तरह ही इस्तेमाल किया जा सकता है:
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;
}
[NSString sizeWithFont:[UIFont fontWithName:@"customFont" size:14]];
मैंने जो भी कस्टम फोंट की कोशिश की है, उसके लिए 0 चौड़ाई और ऊंचाई देता है।
साथ iOS 8
+ और Xcode 6
+ आप यह आसानी से कर सकते हैं। यहाँ कदम हैं:
1) अपने फ़ॉन्ट को Xcode
सहायक फ़ाइल फ़ोल्डर में खींचें और छोड़ें । लक्ष्य सेक्शन में जोड़ें पर अपना ऐप चिह्नित करना न भूलें । इस क्षण से आप इस फ़ॉन्ट का उपयोग कर सकते हैं IB
और इसे फ़ॉन्ट फूस से चुन सकते हैं ।
2) इस फ़ॉन्ट को अपने डिवाइस में उपलब्ध कराने के लिए, अपनी कुंजी को खोलें info.plist
और 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
साथ बहस करता हूं textfield
, तो viewDidLoad
फ़ंक्शन को कॉल करने से पहले लगभग 4 सेकंड की देरी होती है । फ़ॉन्ट समस्याओं के समाधान ने इस देरी को दूर कर दिया। इसलिए, इसे दो बार जांचने की सलाह दें। (rdar: // 20028250) Btw, मैं बग को पुन: पेश करने में सक्षम नहीं था, लेकिन मुझे यकीन है कि समस्या फ़ॉन्ट के साथ थी।
मैंने इस तरह किया है:
फ़ॉन्ट लोड करें:
- (void)loadFont{
// Get the path to our custom font and create a data provider.
NSString *fontPath = [[NSBundle mainBundle] pathForResource:@"mycustomfont" ofType:@"ttf"];
CGDataProviderRef fontDataProvider = CGDataProviderCreateWithFilename([fontPath UTF8String]);
// Create the font with the data provider, then release the data provider.
customFont = CGFontCreateWithDataProvider(fontDataProvider);
CGDataProviderRelease(fontDataProvider);
}
अब, अपने में drawRect:
, कुछ इस तरह से करें:
-(void)drawRect:(CGRect)rect{
[super drawRect:rect];
// Get the context.
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, rect);
// Set the customFont to be the font used to draw.
CGContextSetFont(context, customFont);
// Set how the context draws the font, what color, how big.
CGContextSetTextDrawingMode(context, kCGTextFillStroke);
CGContextSetFillColorWithColor(context, self.fontColor.CGColor);
UIColor * strokeColor = [UIColor blackColor];
CGContextSetStrokeColorWithColor(context, strokeColor.CGColor);
CGContextSetFontSize(context, 48.0f);
// Create an array of Glyph's the size of text that will be drawn.
CGGlyph textToPrint[[self.theText length]];
// Loop through the entire length of the text.
for (int i = 0; i < [self.theText length]; ++i) {
// Store each letter in a Glyph and subtract the MagicNumber to get appropriate value.
textToPrint[i] = [[self.theText uppercaseString] characterAtIndex:i] + 3 - 32;
}
CGAffineTransform textTransform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
CGContextSetTextMatrix(context, textTransform);
CGContextShowGlyphsAtPoint(context, 20, 50, textToPrint, [self.theText length]);
}
मूल रूप से आपको टेक्स्ट के माध्यम से कुछ ब्रूट फोर्स लूपिंग करनी होती है और फॉन्ट को खोजने के लिए मैजिक नंबर के बारे में फ्यूजन करना होता है (यहां, मुझे 29 का उपयोग करके देखें), लेकिन यह काम करता है।
इसके अलावा, आपको यह सुनिश्चित करना होगा कि फ़ॉन्ट कानूनी रूप से एम्बेड करने योग्य है। अधिकांश नहीं हैं और ऐसे वकील हैं जो इस तरह के विशेषज्ञ हैं, इसलिए चेतावनी दी जाए।
CGContextShowTextAtPoint()
- हालांकि यह UTF-8 के साथ काम नहीं करता है।
हां, आप कस्टम फोंट शामिल कर सकते हैं। UIFont, विशेष रूप से, fontWithName:size:
विधि पर प्रलेखन का संदर्भ लें ।
1) सुनिश्चित करें कि आप अपने संसाधन फ़ोल्डर में फ़ॉन्ट शामिल करें।
2) फ़ॉन्ट का "नाम" आवश्यक रूप से फ़ाइल नाम नहीं है।
3) सुनिश्चित करें कि आपके पास उस फ़ॉन्ट का उपयोग करने का कानूनी अधिकार है। इसे अपने ऐप में शामिल करके, आप इसे वितरित भी कर रहे हैं, और आपको ऐसा करने का अधिकार होना चाहिए।
आप उपयोग कर रहे हैं xcode 4.3
, तो आप जोड़ने के लिए font
करने के लिए Build Phase
नीचे Copy Bundle Resources
के अनुसार, https://stackoverflow.com/users/1292829/arne धागा, में कस्टम फ़ॉन्ट्स Xcode 4.3 । यह मेरे लिए काम आया, यहाँ मैंने अपने ऐप में काम करने के लिए कस्टम फोंट के लिए कदम उठाए हैं:
OTF
(या TTF
) फ़ाइलों को खींचा और गिरा दिया और xcode की पसंद को स्वीकार कर लिया copying the files over to the project folder
।UIAppFonts
सरणी के भीतर आइटम के रूप में सूचीबद्ध अपने फोंट के साथ सरणी बनाएं । बस names
, विस्तार नहीं (उदाहरण के लिए " GothamBold
", " GothamBold-Italic
")।project name
सबसे ऊपर वाले रास्ते पर क्लिक करें Project Navigator
।Build Phases
Xcode के मुख्य क्षेत्र में दिखाई देने वाले टैब पर क्लिक करें ।Copy Bundle Resources
" अनुभाग का विस्तार करें और "+"
फ़ॉन्ट जोड़ने के लिए क्लिक करें ।"+"
।add to the project
।यहाँ कदम से कदम निर्देश है कि यह कैसे करना है। अतिरिक्त पुस्तकालय या किसी विशेष कोडिंग की आवश्यकता नहीं है।
http://shang-liang.com/blog/custom-fonts-in-ios4/
अधिकांश समय समस्या फॉन्ट के साथ होती है विधि नहीं। इसे करने का सबसे अच्छा तरीका एक फ़ॉन्ट का उपयोग करना है जो निश्चित रूप से काम करेगा, जैसे कि वर्दाना या जोगिया। फिर इच्छित फ़ॉन्ट में बदलें। यदि यह काम नहीं करता है, तो शायद फ़ॉन्ट नाम सही नहीं है, या फ़ॉन्ट एक अच्छी तरह से तैयार किया गया फ़ॉन्ट नहीं है।
अपने मौजूदा iOS ऐप पर एक नया फ़ॉन्ट जोड़ना बहुत आसान है।
आपको बस अपने संसाधन फ़ोल्डर में फ़ॉन्ट जैसे font.ttf जोड़ना होगा।
अपना आवेदन खोलें info.plist
। "एप्लिकेशन द्वारा प्रदान किए गए फ़ॉन्ट" के रूप में एक नई पंक्ति जोड़ें और फ़ॉन्ट का नाम font.ttf लिखें।
और फॉण्ट सेट करते समय के रूप में करते हैं setFont:"corresponding Font Name"
आप जांच सकते हैं कि आपका फ़ॉन्ट जोड़ा गया है या नहीं NSArray *check = [UIFont familyNames];
।
यह आपके आवेदन के समर्थन के सभी फ़ॉन्ट देता है।
मैं अपने पसंदीदा शॉर्ट ट्यूटोरियल्स में से एक का अनुसरण करने की सलाह दूंगा: http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/ जहां से यह जानकारी आती है।
चरण 1 - अपने प्रोजेक्ट में अपने .ttf या .otf को फाइंडर से खींचें
नोट - अपने मुख्य एप्लिकेशन लक्ष्य पर 'लक्ष्यों में जोड़ें' बॉक्स पर क्लिक करना सुनिश्चित करें
यदि आप इसे अपने लक्ष्य में जोड़ने के लिए क्लिक करना भूल गए हैं, तो अपनी परियोजना पदानुक्रम में फ़ॉन्ट फ़ाइल पर क्लिक करें और दाईं ओर पैनल मुख्य एप्लिकेशन लक्ष्य पर क्लिक करें लक्ष्य सदस्यता अनुभाग
यह सुनिश्चित करने के लिए कि आपके फॉन्ट आपके ऐप टारगेट का हिस्सा हैं, सुनिश्चित करें कि वे आपके कॉपी बंडल रिसोर्स में दिखाई दें बिल्ड चरणों
चरण 2 - फ़ॉन्ट फ़ाइल नामों को अपने Plist में जोड़ें
पर जाएं कस्टम आईओएस लक्ष्य गुण में अपनी जानकारी अनुभाग और उस अनुभाग में आइटमों के लिए एक कुंजी जोड़ें 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];
यह अभी तक बाहर नहीं है, लेकिन cocos2d (2d गेम फ्रेमवर्क) के अगले संस्करण में चरित्र के नक्शे के रूप में चर लंबाई बिटमैप फोंट का समर्थन किया जाएगा।
http://code.google.com/p/cocos2d-iphone/issues/detail?id=317
लेखक के पास इस संस्करण के लिए रिलीज़ की गई कोई दिनांक नहीं है, लेकिन मैंने एक पोस्टिंग देखी जो यह संकेत देती थी कि यह अगले महीने या दो में होगी।
एक महत्वपूर्ण सूचना: आपको फ़ॉन्ट से संबद्ध "पोस्टस्क्रिप्ट नाम" का उपयोग करना चाहिए, न कि उसका पूरा नाम या परिवार का नाम। यह नाम अक्सर फ़ॉन्ट के सामान्य नाम से अलग हो सकता है।
इस कदम का पालन करें
1) अपने प्रोजेक्ट में अपने फॉन्ट को कॉपी करें
2) .plist
सोर्स कोड मोड में अपनी फ़ाइल खोलें ... (नोट- ओपन न करें info.plist
)
3) इससे पहले - अपने फ़ॉन्ट पर राइट क्लिक करें और इसे फॉन्टफोर्ज या समान संपादक में खोलें और install
आपके सिस्टम में, यह होना चाहिएinstall
4) इसे टाइप करें
<key>UIAppFonts</key>
<array>
<string>MyriadPro.otf</string>
</array>
5) इस कोड को अपने में टाइप करें class .m
[lblPoints setFont:[UIFont fontWithName:@"Myriad Pro" size:15.0]];
यहाँ lblPoints आपके अनुसार बदल जाएंगे UILabel
किया हुआ!! यदि फिर भी आपका फॉन्ट काम नहीं करता है, तो पहले अपने फॉन्ट की अनुकूलता की जांच करें
info.plist
?
शायद लेखक फॉन्ट को मैक फोंड नाम देना भूल गया ?
आप निर्यात संवाद में "Apple" विकल्प भी आजमा सकते हैं।
अस्वीकरण : मैं एक IPhone डेवलपर नहीं हूँ!
मैं इस पृष्ठ पर iOS 3.1.2 पर विभिन्न सुझावों की कोशिश कर रहा हूं और ये मेरे निष्कर्ष हैं:
केवल [UIFont fontWithName:size:]
संसाधन निर्देशिका में फोंट के साथ उपयोग करने से काम नहीं चलेगा, भले ही फोंड नाम को FontForge का उपयोग करके सेट किया गया हो।
[UIFont fontWithName:size:]
यदि फोंट को पहले GSFontAddFromFile का उपयोग करके लोड किया जाता है तो काम करेगा। लेकिन GSFontAddFromFile
iOS 3.1.2 का हिस्सा नहीं है, इसलिए इसे @rpetrich द्वारा वर्णित के रूप में गतिशील रूप से लोड किया जाना है।
देखो ATSApplicationFontsPath
एक सरल प्लिस्ट प्रविष्टि जो आपको अपने एप्लिकेशन संसाधन फ़ोल्डर में फ़ॉन्ट फ़ाइल (ओं) को शामिल करने की अनुमति देती है और वे आपके ऐप में "बस काम" करते हैं।
मैंने इस पेज की कुछ सलाह को कुछ इस तरह से जोड़ा है जो मेरे लिए iOS 5 पर काम करता है।
सबसे पहले, आपको अपनी परियोजना में कस्टम फ़ॉन्ट जोड़ना होगा। उसके बाद, आपको @iPhoneDev की सलाह का पालन करना होगा और अपनी जानकारी के लिए फ़ॉन्ट जोड़ना होगा। फाइल फ़ाइल।
आपके ऐसा करने के बाद, यह काम करता है:
UIFont *yourCustomFont = [UIFont fontWithName:@"YOUR-CUSTOM-FONT-POSTSCRIPT-NAME" size:14.0];
[yourUILabel setFont:yourCustomFont];
हालाँकि, आपको अपने फ़ॉन्ट के पोस्टस्क्रिप्ट नाम को जानना होगा। फॉन्टबुक में रहने के दौरान बस @ डैनियल वुड की सलाह का पालन करें और कमांड-आई दबाएं।
फिर, अपने कस्टम फ़ॉन्ट का आनंद लें।
पहले अपने संसाधनों में .odt प्रारूप में फ़ॉन्ट जोड़ें, इस मामले में हम DINEngschriftStd.otf का उपयोग करेंगे, फिर लेबल को फ़ॉन्ट असाइन करने के लिए इस कोड का उपयोग करें
[theUILabel setFont:[UIFont fontWithName:@"DINEngschriftStd" size:21]];
यह सुनिश्चित करने के लिए कि आपका फ़ॉन्ट प्रोजेक्ट पर लोड है, बस कॉल करें
NSLog(@"Available Font Families: %@", [UIFont familyNames]);
.Plist पर आपको फॉन्ट घोषित करना होगा। बस 'एप्लिकेशन द्वारा प्रदान किए गए फॉन्ट' रिकॉर्ड जोड़ें और फ़ॉन्ट के नाम के साथ एक आइटम 0 स्ट्रिंग जोड़ें (DINEngschriftStd.otf)
IOS 3.2 और इसके बाद के संस्करण के लिए: ऊपर दिए गए कई तरीकों का उपयोग करें, जो हैं:
[UIFont fontWithName:@"Real Font Name" size:16]
अपने आवेदन में उपयोग करें ।लेकिन "रियल फॉन्ट नेम" हमेशा वह नहीं होता जिसे आप फॉन्टबुक में देखते हैं। सबसे अच्छा तरीका है कि आप अपने डिवाइस से पूछें कि यह कौन सा फोंट देखता है और सटीक नाम क्या हैं।
मैं uifont नाम करने की कुंजी का उपयोग पर तैनात: uifont नाम करने की कुंजी
बस अपने इच्छित फॉन्ट को xcode प्रोजेक्ट में ड्रॉप करें, फ़ाइल का नाम उसके प्लिस्ट में जोड़ें, और जिस डिवाइस के लिए आप निर्माण कर रहे हैं, उस पर उसे चलाएं, यह आपको उन नामों का उपयोग करके एक पूर्ण फ़ॉन्ट सूची ईमेल करेगा जो UIFont fontWithName:
अपेक्षा करता है।
IOS 4.1 से शुरू होने वाले कस्टम फोंट का उपयोग करने का एक नया तरीका है। यह आपको फोंट को गतिशील रूप से लोड करने की अनुमति देता है, जैसे कि वे एप्लिकेशन, डाउनलोड किए गए डेटा, या आपके पास क्या शामिल हैं। यह आपको आवश्यकतानुसार फोंट लोड करने की सुविधा भी देता है, जबकि पुरानी विधि उन सभी को ऐप स्टार्टअप समय पर लोड करती है, जो कि कई फोंट होने पर आपको बहुत लंबा लग सकता है।
नई विधि ios- डायनामिक-फॉन्ट-लोडिंग में वर्णित है
आप CTFontManagerRegisterGraphicsFont
फ़ंक्शन का उपयोग करते हैं, इसे अपने फ़ॉन्ट डेटा के साथ एक बफर देते हैं। यह तब UIFont
और वेब दृश्य के लिए उपलब्ध है , जैसे पुरानी पद्धति से। उस लिंक से नमूना कोड यहां दिया गया है:
NSData *inData = /* your font-file data */;
CFErrorRef error;
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)inData);
CGFontRef font = CGFontCreateWithDataProvider(provider);
if (! CTFontManagerRegisterGraphicsFont(font, &error)) {
CFStringRef errorDescription = CFErrorCopyDescription(error)
NSLog(@"Failed to load font: %@", errorDescription);
CFRelease(errorDescription);
}
CFRelease(font);
CFRelease(provider);
kCTFontManagerErrorAlreadyRegistered
, "फ़ाइल पहले ही निर्दिष्ट दायरे में पंजीकृत हो गई है।" developer.apple.com/library/ios/#documentation/Carbon/Reference/…
अपनी परियोजना में आवश्यक फ़ॉन्ट जोड़ें (जैसे चित्र जोड़ना, बस Xcode पर खींचें), सुनिश्चित करें कि वे आपकी परियोजना के
लिए लक्षित हैं इस पद्धति को जोड़ें और कस्टम फोंट (अनुशंसित में 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: "")
}
}
उदाहरण का उपयोग करें:
if let fontPath = NSBundle.mainBundle().pathForResource("My-Font", ofType: "ttf"){
loadFont(fontPath)
}
फ़ॉन्ट का उपयोग करें:
UIFont(name: "My-Font", size: 16.5)
हालाँकि ऊपर दिए गए कुछ उत्तर सही हैं, फिर भी मैंने फॉन्ट वाले लोगों के लिए एक विस्तृत विज़ुअल ट्यूटोरियल लिखा है।
ऊपर दिए गए उपाय जो आपको फॉन्ट को जोड़ने और उपयोग करने के लिए कहते हैं
[self.labelOutlet setFont:[UIFont fontWithName:@"Sathu" size:10]];
सही हैं। कृपया अब किसी अन्य हैकिश तरीके का उपयोग करें। यदि आप अभी भी फ़ॉन्ट नाम खोजने और उन्हें जोड़ने के साथ समस्याओं का सामना कर रहे हैं, तो यहां ट्यूटोरियल है -
हाँ आप अपने एप्लिकेशन में कस्टम फ़ॉन्ट का उपयोग कर सकते हैं
वहाँ के बाद कदम से कदम:
सहायक फ़ाइलों में अपनी परियोजना में अपनी कस्टम फ़ॉन्ट फ़ाइलें जोड़ें
UIAppFonts नामक आपकी Info.plist फ़ाइल में एक कुंजी जोड़ें।
इस कुंजी को एक सरणी बनाएं
आपके पास प्रत्येक फ़ॉन्ट के लिए, अपनी फ़ॉन्ट फ़ाइल का पूरा नाम (एक्सटेंशन सहित) UIAppFonts सरणी में आइटम के रूप में दर्ज करें
Info.plist को सेव करें। अब अपने आवेदन में आप [UIFont fontWithName: @ "अपने कस्टम फ़ॉन्ट का नाम" आकार: 20] पर कॉल कर सकते हैं, कस्टम फ़ॉन्ट पाने के लिए अपने UILabels के साथ उपयोग करने के बाद इसे सही फ़ॉन्ट नहीं मिलने पर आप डबल क्लिक करें। कस्टम फ़ॉन्ट पर, और ध्यान से देखें कि शीर्ष साइड फ़ॉन्ट नाम आ रहा है और इस फ़ॉन्ट को कॉपी करें, पेस्ट करें, यहां [UIFont fontWithName: @ "यहां अपने कस्टम फ़ॉन्ट का नाम" आकार: 20 "लिखें
मुझे आशा है कि आपको सही उत्तर मिलेगा
हाँ आप अपने एप्लिकेशन में कस्टम फ़ॉन्ट का उपयोग कर सकते हैं
वहाँ के बाद कदम से कदम:
Info.plist
UIAppFonts नामक फ़ाइल में ।Info.plist
अपने एप्लिकेशन में अभी सेव करें आप [UIFont fontWithName:@"your Custom font Name" size:20]
कस्टम फ़ॉन्ट को अपने साथ उपयोग करने के लिए कॉल कर सकते हैंUILabels
इसे लागू करने के बाद यदि आपका सही फ़ॉन्ट नहीं मिल रहा है तो आप कस्टम फ़ॉन्ट पर डबल क्लिक करें, और ध्यान से देखें शीर्ष साइड फ़ॉन्ट का नाम आ रहा है और इस फ़ॉन्ट को कॉपी करें, पेस्ट करें, यहाँ [UIFont fontWithName:@" here past your Custom font Name" size:20]
मुझे आशा है कि आपको सही उत्तर मिलेगा