Używanie niestandardowej czcionki w widoku UIWebView
Chciałbym wyświetlić niestandardową czcionkę wewnątrz UIWebView. Umieściłem już czcionkę w pliście w zakładce "czcionki dostarczone przez aplikację". Kod w użyciu:
UIWebView *webView = [[UIWebView alloc] initWithFrame:myRect];
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
[webView loadHTMLString:html baseURL:baseURL];
[self addSubview:webView];
Gdzie html jest Nsstringiem o następującej treści:
<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: э
</body></html>
Używam iOS 4.2, więc TTF powinien być obsługiwany. Byłbym wdzięczny za trochę kodu html/, który faktycznie działa.
2 answers
Po kilku próbach i błędach znalazłem niezawodny sposób ładowania niestandardowych czcionek za pomocą lokalnego CSS.
1. Dodaj swoją czcionkę do aplikacji...upewnij się, że plik jest docelowy odpowiednio do aplikacji
2. Następnie dodaj swoją czcionkę do yorapp-Info.plist
3. Uruchom NSLog(@"Available fonts: %@", [UIFont familyNames]);
, aby sprawdzić, jaką nazwę ma czcionka / fontfamily dla systemu...
4. Skopiuj tę nazwę i użyj ich w CSS...@ font-face is not potrzebne
body {
font-family:"Liberation Serif";
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-11 11:04:20
Skończyło się na tym, że to działa, chociaż nie jestem pewien, co zrobiłem źle powyżej. Oto HTML, którego używam (NSString * htmll). Dodałem wszystko, część może nie mieć znaczenia dla rozwiązania.
<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>
I ładuję UIWebView w następujący sposób:
UIWebView *webView = [[UIWebView alloc] initWithFrame:rect];
[webView makeTransparent];
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
[webView loadHTMLString:html baseURL:baseURL];
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-02 05:47:18