Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用html<;ruby>;Swift 4中日文字符的标记_Html_Swift_Xcode_Cjk - Fatal编程技术网

如何使用html<;ruby>;Swift 4中日文字符的标记

如何使用html<;ruby>;Swift 4中日文字符的标记,html,swift,xcode,cjk,Html,Swift,Xcode,Cjk,我需要在Swift中为日语字符使用html标记 我一直在使用以下字符串扩展名: extension String{ func convertHtml() -> NSAttributedString{ guard let data = data(using: .utf8) else { return NSAttributedString() } do{ return try NSAttributedString(data: data, options: [.d

我需要在Swift中为日语字符使用html标记

我一直在使用以下字符串扩展名:

extension String{
func convertHtml() -> NSAttributedString{
    guard let data = data(using: .utf8) else { return NSAttributedString() }
    do{
        return try NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding: String.Encoding.utf8.rawValue], documentAttributes: nil)
    }catch{
        return NSAttributedString()
    }
}
然后使用textView进行测试,如下所示:

textView.attributedText = "<!DOCTYPE html><html><body>これは<ruby>日<rt>に</rt>本<rt>ほん</rt>語<rt>ご</rt></ruby>です。</body></html>".convertHtml()
textView.attributedText=”これは日に本ほん語ごです。".转换HTML()
这就是它的实际外观:

これは日に本ほん語ごです。日文文本的整行应该包含在
标记中。这是因为
元素设置了自己的内联上下文,但是它的子元素,如
也设置了自己的上下文,如“block”,只有当整行被包含时才真正有意义在
元素中插入


これ
は
日に
本ほん
語ご
です
。
但这不是日语。

以下是我使用的一种简单方法


fg:之前{
内容:attr(t);
显示:块;
字体大小:50%;
文本对齐:开始;
线高:1.5;
}
前景{
显示:内联块;
文本缩进:0px;
线高:正常;
-webkit文本强调:无;
文本对齐:居中;
线高:1;
}
私はケンです。


This
let japStr=”これは日に本ほん語ごです。“
works,我不是HTML专家,但你真的需要所有这些子标签吗?是的,它们是小文本显示在日文字符上方所必需的。感谢你提供这些信息。不幸的是,在Swift中调用时,它仍然不能解决furigana和kanji排列的问题。我尝试了你的代码,它仍然是cre“这是奇怪的换行符。@AdamS。我现在用一个直接代码示例编辑了我的文章,并对其进行了验证。如果在使用我的原样代码的情况下仍然出现换行符,那么您可能需要检查加载到webView中的任何
WKUserScript
是否对您造成了任何干扰,并确保在编辑之前没有包含任何CSS。”加载后重新/加载。@AdamS。好吧,看起来我偏离了正切方向,抱歉–我想即使HTML完全有效,
UITextView
nsattributestring
也不能像
WKWebView
那样解释它;我甚至认为苹果没有实现对HTML的准确解释因为每一个文本节点都有它自己的行,这里没有内联节点的概念。我对“代码> UITExtVelue/Cuth>没有经验,但是你会考虑使用<代码> WKWebVIEW < /代码>来代替这个吗?谢谢。这是有效的。我没有考虑使用WebKIT视图,但是它看起来可以做我需要的。我不是那个名人。iar使用webkit,但这样做会允许脱机使用,还是需要用户连接到internet?@AdamS。不需要web连接,因为您只需使用它解析一些HTML5,还可能运行一些JavaScript(如果您愿意的话)。如果还想引用外部资源或生成XmlHttpRequests,则只需要web连接。