2016-07-04 3 views
1

Обратите внимание, этот простой CSS/HTML, который отображается в локальном UIWebView:iOS UIWebView полностью не понимает больше, чем один шрифт?

есть тренажер, показывающий его ...

enter image description here

Примечание Есть два @ определения шрифта для лица.

Но ... только второй работает. Если вы меняете их вокруг, работает только второй.

enter image description here

Так вот ...

@font-face { 
font-family:'aaa'; 
src: local('SourceSansPro-Regular'), 
url('SourceSansPro-Regular.ttf') format('truetype'); 
} 
@font-face { 
font-family:'bbb'; 
src: local('SourceSansPro-BoldIt'), 
url('SourceSansPro-BoldItalic.ttf') format('truetype'); 
} 

только "БББ" работает, другой, кажется, "отменен". Тогда здесь ..

@font-face { 
font-family:'bbb'; 
src: local('SourceSansPro-BoldIt'), 
url('SourceSansPro-BoldItalic.ttf') format('truetype'); 
} 
@font-face { 
font-family:'aaa'; 
src: local('SourceSansPro-Regular'), 
url('SourceSansPro-Regular.ttf') format('truetype'); 
} 

только «ааа» работает, другой, кажется, «отменен».

Вот как сделать это в Swift,

// load a simple UIWebView (say, an "about" or "legal" screen) 
// base is in template.html 
import UIKit 
import WebKit 
class MinorWebView:UIViewController 
    { 
    @IBOutlet var wv:UIWebView! 
    @IBInspectable var filename:String = "?" 
    // for example, "about" for "about.html" 

    ... 
    func makeHtml() 
     { 
     print("making html for ... " ,filename) 

     let ourSize = grid.yourSizeDecisionMechanism 
     let sizeString = String(format:"%.0f", ourSize) 

     let p1 = NSBundle.mainBundle().pathForResource("template", ofType: "html") 
     var html:String = try! NSString(contentsOfFile:p1!, encoding:NSUTF8StringEncoding) as String 

     let p2 = NSBundle.mainBundle().pathForResource(filename, ofType: "html") 
     let content:String = try! NSString(contentsOfFile:p2!, encoding:NSUTF8StringEncoding) as String 

     html = html.stringByReplacingOccurrencesOfString("STUFF", withString:content) 
     html = html.stringByReplacingOccurrencesOfString("SIZEPOINTS", withString:sizeString) 

     print("Made html like this ---\n" ,html ,"\n------") 

     wv.loadHTMLString(html as String, baseURL:nil) 
     } 
    } 

Просто перетащите «template.html» и «about.html», чтобы проект (так же, как вы бы с изображением); убедитесь, что они имеют целевое членство.

+0

Вы пробовали WKWebView? –

+0

Спасибо, что спросили Альберто; он, кажется, полностью терпит неудачу в WK. (Использует только тип по умолчанию.) Вот, я действительно пытаюсь заставить его работать в UIWebView, спасибо. – Fattie

ответ

1

У вас есть ошибка в блоке <style>: он начинается с элемента <meta>. Это выкинет парсер; видимо, он думает, что все до первого } плохо, и его нужно отбросить.

Решение: принять <meta> из <style>.

+0

Полностью магия. Как я могу благодарить вас? Пошлют за щедрость, когда это позволит! Благодаря!!!! – Fattie

+0

Просто интересно, могу ли я на самом деле закончить мета? '' (Конечно, переместите его из стиля - перед стилем.) – Fattie

+0

Метасы не нужно закрывать; они [void elements] (https://dev.w3.org/html5/html-author/#void) без конечного тега или содержимого. –

Смежные вопросы