Пользовательский путь шрифта iOS для UIWebViews - PullRequest
4 голосов
/ 26 января 2012

У меня есть UIWebView, и у меня есть собственный шрифт, который я хочу загрузить в редактируемый HTML-документ, который я буду отображать через UIWebView.В моей папке SupportingFiles (resources) у меня есть «Nosifer-Regular.ttf» ... Чтобы использовать собственный шрифт в моем HTML, мне нужен путь (URL) к плитке шрифта ... Я пытался сделать это, но это не такКажется, что это работает ... какие-нибудь идеи?

bundle = [NSBundle mainBundle];
    pathFont = [bundle bundlePath];
    fontURL = [NSBundle pathForResource:@"Nosifer-Regular" ofType:@"ttf" inDirectory:pathFont];
    path_font = [fontURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    fileAppend = [[NSString alloc] initWithFormat:@"file://"];
    path_font = [[NSString alloc] initWithFormat:@"%@%@", fileAppend, path_font];

HTML (CSS):

@font-face {
  font-family: 'Nosifer';
  font-style: normal;
  font-weight: 400;
  src: local('Nosifer'), local('Nosifer-Regular'), url('%@') format('truetype');
}

Где% @ заменяется на "path_font" (определено выше в первом кодеблок)

Ответы [ 4 ]

4 голосов
/ 26 января 2012

Прежде всего, добавьте в поле info.plist поле "Шрифты, предоставленные приложением".Это будет массив типа

item0 myFont.otf
item1 anotherFont.ttf

или что-то еще.

В HTML используйте font-face для добавления шрифта.И поместите ваши файлы шрифтов в тот же каталог, где находится HTML-файл.Если HTML генерируется динамически и не отображается из пакета, вам следует скопировать шрифт.

Удачи.

1 голос
/ 20 октября 2014

Добавьте свой собственный шрифт в свой проект.Затем

Получить имя шрифта

 UIFont *font = [UIFont fontWithName:@"Your-Custom-font" size:20];

Затем создать строку HTML

NSString *htmlHeader=[NSString stringWithFormat:@"<html><head><head><link rel=\"stylesheet\" type=\"text/css\" href=\"file://localhost%@\"></head><body><font face=\"%@\"; size=\"4\">HI</font></body></html>",cssPath,font.familyName];

Удачи.

1 голос
/ 29 августа 2012

У меня есть пример рабочего HTML-кода.

<html>
<head>
    <style type='text/css'>
        p.p1 {margin: 0.0px 0.0px 0.0px 30.0px; font: 34.0px;}
        @font-face {
            font-family: 'Nosifer'; font-style: normal; font-weight: 400; src: local('Nosifer'), local('Nosifer-Regular'), url('Nosifer-Regular.ttf') format('truetype');
        }

        .nosifer {
            font-family: Nosifer;
        }

        </style>
</head>
<body allowtransparency='true'>
    <p class="nosifer">Nosifer ABCabc</p>
</body>

Как видите, я использовал класс css, чтобы легче определить шрифт. Я не уверен, что означает весь этот CSS-код внутри font-face, но, похоже, он работает.

Я подтвердил, что вам НУЖНО добавить «Nosifer-Regular.ttf» в массив шрифтов, предоставляемых приложением, в файле * -info.plist (ключ: шрифты, предоставляемые приложением) Кстати, я погуглил Nosifer-Regular.ttf и нашел его на шумном сайте здесь. Это действительно работает, хотя: http://www.ffonts.net/Nosifer.font.download

Затем я также смог загрузить OTF, который я буду использовать в моем случае. В CSS я изменил формат с истинного на opentype.

0 голосов
/ 26 января 2012

Вот как вы можете добавить шрифт в ваш Info.plist:

    <key>UIAppFonts</key>
    <array>
        <string>Nosifer-Regular.ttf</string>
    </array>

Тогда используйте @ font-face согласно этому другому ответу .

...