Использование пользовательского шрифта в UIWebView
Я хотел бы отобразить пользовательский шрифт внутри UIWebView. Я уже разместил шрифт в plist в разделе "Шрифты, предоставляемые приложением". Используемый код:
UIWebView *webView = [[UIWebView alloc] initWithFrame:myRect];
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
[webView loadHTMLString:html baseURL:baseURL];
[self addSubview:webView];
где html - это 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: э
</body></html>
Я использую iOS 4.2, поэтому TTF должен поддерживаться. Я бы оценил немного html/code, который действительно работает.
Ответы
Ответ 1
После некоторых попыток и ошибок я нашел надежный способ загрузки пользовательских шрифтов с помощью локального CSS.
1. Добавьте свой шрифт в приложение... убедитесь, что файл нацелен правильно для приложения
![enter image description here]()
![enter image description here]()
2. Затем добавьте свой шрифт в файл yourApp-Info.plist
![enter image description here]()
3. Запустите NSLog(@"Available fonts: %@", [UIFont familyNames]);
Чтобы проверить, какое имя имеет шрифт /fontfamily для системы...
![enter image description here]()
4. Скопируйте это имя и используйте их в своем CSS... @font-face не требуется
body {
font-family:"Liberation Serif";
}
Ответ 2
Я закончил работу, хотя я не уверен, что я сделал неправильно. Здесь используется HTML-код (NSString * htmll). Я добавил все, некоторые из них могут не иметь отношения к решению.
<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];