我想在iOS上使用WKWebView,它始终以我指定的确切字体大小(例如12px)显示文本。但是我无法找到一种方法来阻止它根据许多不同的变量来缩放字体,包括设备的方向和HTML中的内容。
我尝试了“视口” HTML标记中许多不同的参数组合,例如设置恒定宽度,并将初始,最小和最大比例设置为不同的值。所有这些都不能阻止Web视图以上下文相关的方式更改字体。
以下是一些示例Swift代码,它们说明了我所看到的内容:
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet var webView: WKWebView!
@IBOutlet var webView2: WKWebView!
override func viewDidLoad()
{
super.viewDidLoad()
let htmlFormatString = "<!DOCTYPE html><html><head><meta name=\"viewport\" content=\"initial-scale=1.0 minimum-scale=1.0, maximum-scale=1.0, user-scalable=no\"/><style type=\"text/css\">p {font-size: 12px;}</style></head><body>%(body)</body></html>"
let htmlTest1 = htmlFormatString.replacingOccurrences(of: "%(body)", with: "<p>Test paragraph 1.")
webView.loadHTMLString(htmlTest1, baseURL: URL(string: "http:"))
let htmlTest2 = htmlFormatString.replacingOccurrences(of: "%(body)", with: "<p>Test paragraph 1.<p>Test paragraph 2.")
webView2.loadHTMLString(htmlTest2, baseURL: URL(string: "http:"))
}
}
我刚刚建立了一个带有两个Web视图的情节提要板,一个Web视图绑定到视图的上半部分,另一个Web视图绑定到下半部分。
如果以纵向模式在模拟器上运行它,则两者中的内容将以相同的比例显示。但是,如果旋转到横向,则底部Web视图的字体明显大于顶部。通过实验,我确定了HTML中有两个“ p”标签时,字体会变大。当只有一个“ p”时,字体较小。我不明白这是要实现的目标,因为如果有什么需要的话,由于底部Web视图中有更多文本,我希望将其缩小。无论哪种方式,我都根本不希望它扩展。我的设计师要求无论如何始终将其绘制为12px。
即使您从HTML中完全删除了“标头”,您也可以看到它,因此没有视口或样式。
答案 0 :(得分:0)
尝试添加您的CSS:
body {
-webkit-text-size-adjust: none;
}