这儿每天共享一个 iOS 的新知识,快来重视我吧

喜欢我能够帮我投个票

前言

咱们能够在 iOS 应用程序中运用自定义字体,信任大多数 iOS 开发者都知道怎么做,可是有时候咱们也需求在 WKWebView 运用自定义字体,今日就来聊聊这个话题。

在 WKWebView 中运用自定义字体

咱们先运用 WKWebView.loadHTMLString(_:baseURL:) 方法加载一段本地的静态 HTML:

let webView = WKWebView(frame: view.bounds)
view.addSubview(webView)
let htmlString = """
<!doctype html>
<meta name="viewport" content="width=device-width, initial-scale=1">
<div>Apple Swift iOS</div>
</html>
"""
webView.loadHTMLString(htmlString, baseURL: nil)

能够看到作用:

swift 中怎么自定义 WKWebView 的字体

默认情况下,WKWebView 会运用 Times New Roman 字体,16 号大小。

swift 中怎么自定义 WKWebView 的字体

运用体系支撑的字体

iOS 体系本身自带了一些字体,能够在 WebView 的 CSS 中直接运用,直接修正 CSS 中的 style 即可,比方咱们改成 Zapfino 字体:

let htmlString = """
<!doctype html>
<meta name="viewport" content="width=device-width, initial-scale=1">
<div style="font-family: Zapfino">Apple Swift iOS</div>
</html>
"""

能够看到作用:

swift 中怎么自定义 WKWebView 的字体

在 WKWebView 中运用自定义字体

出了体系支撑的字体,有时候咱们还需求运用自定义的字体,比方安卓中常用的 Roboto 斜体。

1、将字体文件导入项目中(一般是 ttf 文件):

swift 中怎么自定义 WKWebView 的字体

2、在 info.plist 文件中添加对应的符号:

swift 中怎么自定义 WKWebView 的字体

后来测验发现不做这一步也能够

3、修正 HTML 字符串

在 HTML 中,要运用自定义字体,需求运用 @font-face 关键字,这个关键字能够将自定义字体文件加载到 CSS 中,

<!doctype html>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
    @font-face {
        font-family: 'Roboto-Italic';
        src: url("Roboto-Italic.ttf") format('truetype');
    }
</style>
<div style="font-family: Roboto-Italic">Apple Swift iOS</div>
</html>

4、将 app bundle 引进 WKWebView

为了能让 WKWebView 顺畅访问字体文件,需求将字体文件所在的 Bundle 路径传入,咱们这儿字体文件在主 Bundle,所以直接传 Bundle.main.bundleURL

webView.loadHTMLString(htmlString, baseURL: Bundle.main.bundleURL)

最终再运行代码,就能看到 Demo 中烘托了自定义字体:

swift 中怎么自定义 WKWebView 的字体

这儿每天共享一个 iOS 的新知识,快来重视我吧

本文同步自微信大众号 “iOS新知”,每天准时共享一个新知识,这儿只是同步,想要及时学到就来重视我吧!