2009-08-19 11 views
28

में प्रोग्रामेटिक रूप से टाइपिंग मेरे पास मेरे आवेदन में निम्नलिखित कोड है।UILabel - सेटिंग फ़ॉन्ट - आईफोन

tmp=[[UILabel alloc] initWithFrame:label1Frame]; 
tmp.tag=1; 
tmp.textColor=[UIColor blackColor]; 
[tmp setFont:[UIFont fontWithName:@"American Typewriter" size:18]]; 
tmp.backgroundColor=[UIColor clearColor]; 
[cell.contentView addSubview:tmp]; 
[tmp release]; 

अब, मैं,

======> कैसे कोड के माध्यम से स्थापित करने के लिए "टाइपफ़ेस बोल्ड =" पता करने की जरूरत?

+0

"लेबल के छाया ऑफसेट" से आपका मतलब लेबल के ड्रॉपशैडो का आकार हो सकता है? – devinfoley

+0

@flashcards - मुझे समाधान के लिए छाया खोजने के लिए कोई आवश्यकता नहीं है। [tmp sethadowoffset: cgsizemake (1,1)]; –

+2

@ सागर आपको इसे अपने प्रश्न के उत्तर के रूप में पोस्ट करना चाहिए ताकि यह बचाया जा सके। चीयर्स! – devinfoley

उत्तर

36

आपको परिवार के भीतर bold फ़ॉन्ट का नाम उपयोग करने की आवश्यकता होगी। पता लगाने के लिए अगर वहाँ अमेरिकी टाइपराइटर की एक bold संस्करण है, कंसोल के लिए

[UIFont fontNamesForFamilyName:@"AmericanTypewriter"] 

outputting प्रयास करें।

इस मामले में, आपको "AmericanTypewriter-Bold" का उपयोग करना चाहिए।

[UIFont fontNamesForFamilyName:@"AmericanTypewriter-Bold"] 
+0

@flashcards - नहीं मैंने आपके तर्क की कोशिश की, लेकिन मेरा आवेदन दुर्घटनाग्रस्त हो गया। –

+0

हम्म ... फ़ॉन्ट की तरह दिखता है नामफोरफैमिलीनाम यूफॉन्ट पर एक स्थिर विधि है जो पारिवारिक नाम लेती है। मैं अब अपना जवाब ठीक कर दूंगा। क्या आपने "अमेरिकन टाइपराइटर-बोल्ड" का उपयोग करने का प्रयास किया था? – devinfoley

+5

@ सागर - "अमेरिकी टाइपराइटर" के बीच कोई जगह नहीं है। मुझे लगता है कि आपने उनके बीच जगह डाली है। – Brij

20

क्या सेटर संपत्ति का उपयोग कर के बारे में:

// Create a string 
NSString *text = @"You are getting sleepy."; 

// Get a font to draw it in 
UIFont *font = [UIFont boldSystemFontOfSize:28]; 

// Draw the string 
[text drawInRect:(CGRect) 
withFont:font]; 
+0

यह केवल तभी उपयोगी है जब आप सिस्टम फ़ॉन्ट का उपयोग करना चाहते हैं। @ स्पार्क सिस्टम फ़ॉन्ट का उपयोग नहीं कर रहा था। –

17

बस NSLog आपको मिल चाहते हैं फ़ॉन्ट:

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

और तुम सरणी मिल:

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

उपयोग कोड में आपको चाहिए:

UILabel * loading = [[UILabel alloc] initWithFrame:CGRectMake(350, 402, 150, 25)]; 
    [loading setFont:[UIFont fontWithName:@"AmericanTypewriter-Bold" size:12.0]]; 
    [loading setTextColor:[UIColor whiteColor]]; 
    [loading setBackgroundColor:[UIColor clearColor]]; 
    [loading setText:@"Loading ..."]; 
    [self.view addSubview:loading]; 
1

तरह @devinfoley लिखा है, आप के लिए fontName आप उपयोग कर रहे -Bold जोड़ने के लिए। मेरे लिए यह fontNamesForFamilyName के साथ काम नहीं करता है, इसके बजाय मैं fontWithName:size का उपयोग कर रहा हूं। शायद यह काम करता है अगर आप UILabel प्रोग्रामेटिक रूप से बनाते हैं। मेरे मामले में मैं font को UILabel के विस्तार के अंदर awakeFromNib में बस सेट कर रहा हूं और में में इस एक्सटेंशन को UILabel के लिए सेट कर रहा हूं। self.font.pointSize के साथ आप Interface Builder के अंदर सेट कर सकते हैं और यदि आपके पास अधिक UI तत्व हैं तो इसे बेहतर तरीके से संभाल सकते हैं।

- (void)awakeFromNib{ 

    [super awakeFromNib]; 
    [self setAdjustsFontSizeToFitWidth:YES]; 
    [self setFont:[UIFont fontWithName:@"Font-Bold" size:self.font.pointSize]]; 
} 

अपने font काम नहीं करता है तो आप परिवार के सभी fonts प्रिंट चाहिए, ताकि आप देख सकते हैं अगर आप fontName गलत लिखा था। इस तरह आप यह भी जांच सकते हैं कि bold फ़ॉन्ट उपलब्ध है, अगर यह मुद्रित नहीं है तो आपके पास यह विकल्प नहीं है।

NSLog (@"Available Fonts: %@", [UIFont fontNamesForFamilyName:@"Your Font"]); 

अधिक font सामान: https://stackoverflow.com/a/8529661/1141395

2

आप सभी इस साइट iOSfonts में फ़ॉन्ट नाम समर्थित iOS मिल सकती है। अपने सटीक तार का पूर्वावलोकन सर्वोत्तम फ़ॉन्ट को खोजने के लिए ले लो और का उपयोग यह ऊपर जवाब

UILabel * myLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 400, 150, 50)]; 
    [loading setFont:[UIFont fontWithName:@"Avenir-Black" size:12.0]]; 
    [loading setTextColor:[UIColor redColor]]; 
    [loading setBackgroundColor:[UIColor clearColor]]; 
    [loading setText:@"My Label Title"]; 
    [self.view myLabel]; 
0

स्विफ्ट अद्यतन

में उल्लेख किया है, जैसा कि आप पहले से ही एप्लिकेशन के लिए फ़ॉन्ट जोड़ दिया है (के रूप में समझाया here) आप स्विफ्ट extension सुविधा के साथ, एक UILabel और रोबोटो फ़ॉन्ट का उपयोग कर सकते हैं उदाहरण के रूप में:

extension UILabel { 

    func setFont(style: String, size: Int){ 
     self.font = UIFont(name: style, size: CGFloat(size)) 
    } 

    struct FontStyle { 
     public static let italic: String = "Roboto-LightItalic" 
     public static let normal: String = "Roboto-Light" 
     public static let thin: String = "Roboto-Thin" 
    } 
} 

Roboto-LightItalic और Roboto-Light टीटीएफ के फ़ॉन्ट फ़ाइल नाम हैं। फिर, आप बस

someUILabel.setFont(style: UILabel.FontStyle.normal, size: 20) 
संबंधित मुद्दे