60

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: &#1101;
</body></html>

iOS 4.2を使用しているので、TTFをサポートする必要があります。実際に機能するhtml/codeを少しいただければ幸いです。

4

3 に答える 3

106

試行錯誤の末、ローカルCSSを使用してカスタムフォントをロードする信頼できる方法を見つけました。

1.フォントをアプリに追加します...ファイルがアプリケーションに適切にターゲティングされていることを確認します

ここに画像の説明を入力してください ここに画像の説明を入力してください

2.次に、フォントをyourApp-Info.plistに追加します

ここに画像の説明を入力してください

3.実行NSLog(@"Available fonts: %@", [UIFont familyNames]);して、フォント/フォントファミリがシステムに対してどの名前を持っているかを確認します。

ここに画像の説明を入力してください

4.その名前をコピーして、CSSで使用します...@font-faceは必要ありません

body {
    font-family:"Liberation Serif";
}
于 2012-10-02T19:42:13.537 に答える
18

上記で何が間違っていたのかわかりませんが、最終的には機能するようになりました。これが私が使用する 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];
于 2012-10-02T05:47:18.803 に答える