当前位置: 首页 > 面试题库 >

UITextView中的HTML格式

尉迟墨竹
2023-03-14
问题内容

我是iOS开发的新手,现在正在开发可接收某种JSON数据的应用程序。但是一些后端专家认为,如果他们只是直接从Word复制信息并将其粘贴到信息系统中,对用户会更好。所以我坐在这里,尝试在UITableView中创建可点击的链接。

我从Web解析数据并获取具有以下格式的字符串:

F&uuml;r mehr Informationen klicken sie <a href="http://www.samplelink.com/subpage.php?id=8">here</a>.

我已经尝试过UILabel,但是经过一些研究,我现在使用了经常建议使用的UITextView。在属性检查器中,我将其设置为属性文本并启用了链接检测。现在,文本显示为红色并且可以单击。

现在对我来说问题是,HTML标记和正确的(德语)字符集仍然丢失,我不知道如何以正确的方式显示它。

显示的字符串以这种方式解析

    func showHTMLString(unformattedString: String) -> NSAttributedString{
    var attrStr = NSAttributedString(
        data: tmpString.dataUsingEncoding(NSUnicodeStringEncoding, allowLossyConversion: true)!,
        options: [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],
        documentAttributes: nil,
        error: nil)
    return attrStr!
}

如果我用attrStr?.string正确的格式显示Textview 的Format,但链接也消失了。

有什么建议如何以正确的方式格式化显示的字符串?

在此先感谢AR4G4


问题答案:

问题在于您必须将“字符编码”选项从NSUnicodeStringEncoding更改为NSUTF8StringEncoding,才能以正确的方式加载您的html。我认为您应该创建一个字符串扩展只读计算属性,以将您的html代码转换为属性字符串:

Xcode 8.3.1•Swift 3.1

extension Data {
    var attributedString: NSAttributedString? {
        do {
            return try NSAttributedString(data: self, options:[NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue], documentAttributes: nil)
        } catch {
            print(error)
        }
        return nil
    }
}
extension String {
    var data: Data {
        return Data(utf8)
    }
}
let htmlStringCode = "F&uuml;r mehr Informationen klicken sie <a href=\"http://www.samplelink.com/subpage.php?id=8\">here</a>"

htmlStringCode.data.attributedString?.string ?? ""  // "Für mehr Informationen klicken sie here"

在你的情况下

yourTextView.attributedText = htmlStringCode.data.attributedString


 类似资料:
  • 问题内容: 我格式化了sp_send_dbmail以HTML格式发送电子邮件。但是它正在发送带有HTML代码的邮件。 下面是我使用的代码 问题答案: 您也必须指定。默认值为。 请参见MSDN上的sp_send_dbmail:也有HTML示例

  • A UIControl-like API addition to UITextView

  • 在Jquery Mobile中通过默认方法给内容添加样式是很简单的。我们的目标是让浏览器的默认渲染优先进行,然后我们加了一点小小的padding让页面看起来更有可读性,然后应用主题样式系统来分配字体和颜色 采用熟手优先原则给与了设计者和开发者一个干净的空间工作,而不是和一大堆复杂的样式代码战斗。 默认HTML标记样式 Default HTML markup styling 默认情况下,Jquery

  • 问题内容: 我正在学习Xcode中的视图调试器,并通过 Debug > View Debugging> Capture View Hierarchy捕获视图层次结构 。但是,当我在应用程序中尝试该操作时,出现以下错误: -[UITextView _firstBaselineOffsetFromTop],/ BuildRoot / Library / Caches / com.apple.xbs /

  • 利用 Core Text 实现代码根据语法高亮显示效果,可以用作代码编辑器。代码的高亮效果可以随着输入来即时显示。 [Code4App.com]

  • XQuery还可以用于将XML文档转换为HTML页面。 看一下下面的例子,了解XQuery是如何做到的。 示例 这个示例中将使用与前面几节中相同的books.xml文件。 以下示例使用books.xml 中的XQuery提取数据并创建一个HTML表,其中包含所有书籍的标题以及价格。 文件:books.xml 的内容如下所示 - 下面给出了要在上面的XML文档上执行的Xquery表达式。文件:boo