更改字体系列后,UIWebView 文本首先呈现不正确

Posted

技术标签:

【中文标题】更改字体系列后,UIWebView 文本首先呈现不正确【英文标题】:UIWebView text improperly rendered at first after changing font family 【发布时间】:2012-05-28 11:30:32 【问题描述】:

我正在尝试使用 javascript 更改 UIWebView 中显示的文本的字体。我通过调用一个 javascript 函数来做到这一点,该函数将一个 css 规则添加到跨度和段落元素中。

问题是,当我在打开应用程序后第一次这样做时,首先 webview 使用新字体呈现,但在接近 2-3 秒后,单词的位置会滑动一点,比如如果我缩小了文本的行距。

首次加载后,所有其他字体更改请求正常工作,文本可见后间距和位置不会更改。

这种奇怪行为背后的原因可能是什么?我该怎么做才能解决这个问题?

我尝试将css规则直接添加到html代码中,但并没有改变结果。

谢谢

【问题讨论】:

你用 Safari 测试过脚本吗? 是的,我已经尝试过移动 safari,但没有这样的问题。我还在使用 css3 功能,使用“webkit-column-gap”和“webkit-column-width”属性进行动态列拆分。也许同时使用它们会导致这个问题。但它不应该那样做。 如果它在 Safari 中表现良好,我会将其作为错误报告提交给 Apple。一个虚拟的解决方法可能是在加载 UI webViews 之前将一个短格式的文本加载到 1x1px 甚至不可见的 web view 中。 【参考方案1】:

尝试在跨度上应用此 css padding-left: 5px; margin-left: -5px;。内边距是纠正渲染文本的空间,边距是让元素回到原始位置。

【讨论】:

以上是关于更改字体系列后,UIWebView 文本首先呈现不正确的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 UIWebView 获取滚动文本?

在 Flutter 中更改文本的字体系列

EditText 提示和文本的不同字体系列

修复 Mobile Safari (iPhone) 上文本呈现不一致且某些字体比其他字体大的字体大小问题?

如何在 iOS 的 UIWebView 的文档目录中使用 Javascript?

IE 9 - 更改字体大小后文本框中的文本被截断(百分比)