UIWebView 在 iOS 10.3 上针对阿拉伯语内容进行了裁剪

UIWebView clipped for Arabic content on iOS 10.3

我在使用最新的 iOS 版本 (10.3) 时遇到了有关在 UIWebView 上加载阿拉伯语内容 epub 的问题。如屏幕截图所示,文本在左侧被剪裁。

我在 iBooks 上加载文件时遇到了同样的问题。 这个问题之前在 iOS 7 上出现过,但后来在 iOS 8 上修复了。

此问题已在 link 中解决: webview clipped on ios7 但答案不适用。还有其他方法吗?

更新: 请注意,这是用于 epub 分页的 CSS,这是边距的设置方式,操纵边距和宽度百分比或宽度大小,并不能解决问题。

 html {
     height:840px;
     font-size:24px;
     width:100%;
 }

 body {
     margin:0px;
     padding:0px;
     width:100%;
 }

 #viewer {
     width:668px;
     height:840px;
 }

 #book {
     width:668px;
     height:840px;
     margin-left:50px;
     margin-right:50px;

     -webkit-column-count:auto;
     -webkit-column-width:668px;
     -webkit-column-gap:100px;
     text-align:justify;
 }

 .h {
     margin-top:8px;
 }

我有同样的问题,它似乎是 iOS 10.3 中的错误并且在 10.3.1 中也仍然存在,在 iOS 10.3 以下的任何设备上一切正常,经过很多调试和检查元素我发现这个问题发生在阿拉伯语 HTML 文本对齐方式设置为对齐并且文本方向为 RTL 时,所以我将对齐方式更改为右对齐并且一切正常 - 没有文本对齐方式 - 我发现这个任何网站中的错误都有 RTL 方向和合理的文本。

以下是如何将方向更改为 HTML 字符串 Objective-C:

NSString *HTMLString = [NSString stringWithFormat:@"<body><div style='text-align: right; %@/></body>", yourHTMLString];
[webView loadHTMLString:HTMLString baseURL:nil];

Swift:

let HTMLString = "<body><div style='text-align: right; \(yourHTMLString)/></body>"
webview.loadHTMLString(HTMLString, baseURL: nil)

它现在正在右对齐,直到我们在 OS 个网络元素中找到更新。