2012-05-07 40 views
48

में कस्टम फ़ॉन्ट का उपयोग करना मैं UIWebView के अंदर एक कस्टम फ़ॉन्ट प्रदर्शित करना चाहता हूं। मैंने पहले से ही "आवेदन द्वारा प्रदान किए गए फ़ॉन्ट" के तहत प्लिस्ट में फ़ॉन्ट डाल दिया है। प्रयोग में कोड:UIWebView

 UIWebView *webView = [[UIWebView alloc] initWithFrame:myRect]; 
     NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]; 
     [webView loadHTMLString:html baseURL:baseURL]; 
     [self addSubview:webView]; 

जहां एचटीएमएल एक NSString निम्नलिखित सामग्री है कि:

<html><head> 
<style type="text/css"> 
@font-face { 
    font-family: gotham_symbol; 
    src: local('GOTHAMboldSymbol_0.tff'), format('truetype') 
} 
body { 
font-family: gotham_symbol; 
font-size: 50pt; 
} 
</style> 
</head><body leftmargin="0" topmargin="0"> 
This is <i>italic</i> and this is <b>bold</b> and this is some unicode: &#1101; 
</body></html> 

मैं आईओएस 4.2 इसलिए टीटीएफ समर्थन किया जाना चाहिए उपयोग कर रहा हूँ। मैं वास्तव में काम करता है कि कुछ एचटीएमएल/कोड की सराहना करता हूं।

+1

'GOTHAMboldSymbol_0.tff' - विस्तार होना चाहिए' ttf' (जब तक फ़ॉन्ट में डिस्क पर वास्तव में 'tff' एक्सटेंशन नहीं है)। –

+0

मैं भी इसका समाधान ढूंढने की कोशिश कर रहा हूं, लेकिन: मुझे लगता है कि आप baseURL के लिए 'nil' पास करना चाहते हैं। – MusiGenesis

+0

@ जोरीस मैं इस समय एक ही समस्या के साथ संघर्ष करता हूं और यह सुनना दिलचस्प होगा कि आपको कोई समाधान मिला है या नहीं। – Lindemann

उत्तर

93

कुछ कोशिश करने के बाद और मैं एक स्थानीय सीएसएस के साथ कस्टम फ़ॉन्ट्स लोड करने के लिए एक विश्वसनीय तरीका मिल गया है त्रुटि।

1. अनुप्रयोग के लिए अपने फ़ॉन्ट जोड़ें ... सुनिश्चित करें कि फ़ाइल लक्षित है ठीक से आवेदन

enter image description here enter image description here

2. फिर yourApp-Info.plist करने के लिए अपने फ़ॉन्ट जोड़ने के लिए बनाने के

enter image description here

3. भागो NSLog(@"Available fonts: %@", [UIFont familyNames]); जो नाम फॉन्ट/FontFamily Syste के लिए है की जाँच करने के मीटर ... कि

enter image description here

4. कॉपी नाम और उन्हें अपने सीएसएस में उपयोग करें ... @ फॉन्ट-फेस की जरूरत नहीं है

body { 
    font-family:"Liberation Serif"; 
} 
+0

क्षमा करें कि मैंने उस चरण को शामिल किया था। मैंने किसी भी तरह से माना था कि आपने पहले ही यह कदम उठाया है ... –

+0

धन्यवाद! क्या यह कहीं भी दस्तावेज है? – ozz

+4

चरण 1-3 मूल रूप से कस्टम फोंट को ऐप में जोड़ने का मानक तरीका है ... इसलिए हाँ यह दस्तावेज है। और अंतिम चरण में आप एक सिस्टम पर उपलब्ध फ़ॉन्ट को कॉल करने के मानक तरीके का उपयोग करते हैं ... :-) – Lindemann

10

मैंने इसे काम करने के लिए समाप्त कर दिया हालांकि मुझे यकीन नहीं है कि मैंने ऊपर क्या किया है। यहां HTML का उपयोग किया गया है (एनएसएसटींग * एचटीएमएल)। मैंने सब कुछ जोड़ा, इसमें से कुछ समाधान के लिए प्रासंगिक नहीं हो सकता है।

<html><head><style type="text/css"> 
@font-face { 
font-family: 'gotham_symbol'; 
src: url('GOTHAMboldSymbols_0.ttf') format('truetype') 
} 
@font-face { 
font-family: 'gotham_symbol_italic'; 
src: url('GothamBoldItalic.ttf') format('truetype') 
} 
#w {display:table;} 
#c {display:table-cell; vertical-align:middle;} 
i { font-family: 'Helvetica-BoldOblique'; } 
</style></head><body topmargin="0" leftmargin="0"> 
<div style="display: table; width: 320px; height: 50px; #position: relative; overflow: hidden;"> 
<div style=" #position: absolute; #top: 50%;display: table-cell; vertical-align: middle;"> 
<div style=" #position: relative; #top: -50%"> 
<p style="font-size:20px;font-family:'gotham_symbol';color:#97371f;">THE TEXT GOES HERE</p></div></div></div></body></html> 

और मैं UIWebView लोड इस प्रकार है:

UIWebView *webView = [[UIWebView alloc] initWithFrame:rect]; 
[webView makeTransparent]; 
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]; 
[webView loadHTMLString:html baseURL:baseURL]; 
+0

धन्यवाद जॉरीस! <3 – Lindemann